javascript - Angular 如何以正确的方式从服务设置范围变量?

标签 javascript angularjs scope

我想从服务方法返回值到模板中使用和处理的范围。

但我发现,我无法在服务中使用范围。 我可以使用 Rootscope,但我认为这不是正确的方法。

如何轻松地将服务的值(value)设置到范围中?

感谢您的任何建议。

代码如下:

/**
      * Init autocomplete dropdown menu for project list
      */
     this.getProjectListForAutocomplete =  function (container, options) {
         $("#autocompleteProjects").kendoAutoComplete({
             dataSource :  {
                 type: "json",
                 serverFiltering: true,
                 transport: {
                     read: function (options) {
                         console.log("List");
                         console.log(options.data);

                         ApiService.doHttpRequest(
                             "POST",
                             $rootScope.apiBaseUrl + "gpsaddress/search",
                             requestParams
                         )
                             .success(function (data, status, headers, config) {

                                         break;
                                 }
                             })
                             .error(function (data, status, headers, config) {

                             });
                     }
                 }
             },
             dataTextField: "city"  ,
             dataValueField: "address.city",
             filter: "contains",
             minLength: 1,
             change  : function (e) {
                 console.log("change");
                 //console.log(e);
             },
             select  : function (e) {
                 console.log("select");
                 var dataItem = this.dataItem(e.item.index());
                 console.log(dataItem);
                 // Here i need set scope in controller
             }
         });
     };

最佳答案

请看下面的演示:

var app = angular.module('app', []);


app.service('dataService', function() {

  var _person = {

    name: "jack",
    surname: "doe"

  }

  return {
    person: _person

  }

})
app.controller('fCtrl', function($scope, dataService) {

  $scope.person = dataService.person;

});
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>

<div ng-app="app">
  <div ng-controller="fCtrl">
    <p>First Name: {{person.name}}</p>
    <p>Last Name: {{person.surname}}</p>
    Edit First Name:<input type: "text" ng-model="person.name" />
  </div>
</div>

关于javascript - Angular 如何以正确的方式从服务设置范围变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26584222/

相关文章:

javascript - 用户界面路由器 : Keep url after $stateChangeError (while resolving dependencies)

c# - 带有 angularjs 的 $http 请求正在返回我的 html 文档

c++ - 为什么我们可以从 C++ 中的成员函数访问非成员函数

ruby-on-rails - rails 构建或更新方法?

javascript - jquery 添加新的复选框,当点击新的复选框时,它什么也没有发生

php - 如何在 php 和 javascript 中创建小部件?

javascript - 使用带有 Javascript 对象的参数?

javascript - 使用 execCommand ="_blank"添加目标 'createlink'

javascript - Sigma.js 过滤器问题

clojure - 传递变量和元数据