84669 Lernen von Personen
152542 Lernen von Personen
20005 Lernen von Personen
5487 Lernen von Personen
7821 Lernen von Personen
359900 Lernen von Personen
3350 Lernen von Personen
180660 Lernen von Personen
48569 Lernen von Personen
18603 Lernen von Personen
40936 Lernen von Personen
1549 Lernen von Personen
1183 Lernen von Personen
32909 Lernen von Personen
我想在factory中获取并改变顶级控制器里的变量 可以办到吗
认证高级PHP讲师
一般我在做项目的时候,服务就做俩用途:第一,是作为公共方法,比如提交方法,弹出框的某些服务等等类似的通用的服务。第二,是根据特殊的需求在某几个控制器之间传递参数或对象时候使用,这种情况很少,一般也不推荐~
你说的在服务中去改变顶级控制器的变量,我感觉你是提供了你思路上的一个片段,而不是根本需求点~你的需求是什么?
没法直接操作,有两种方式:1、通过回调函数的方式改变值2、通过传对象参数的方式改变值(array,object)
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <script src="http://apps.bdimg.com/libs/angular.js/1.4.6/angular.min.js"></script> </head> <body ng-app="myApp" > <p ng-controller="myCtrl"> {{ value.name }} {{ value.value }} </p> <hr /> <p ng-controller="myCtrl2"> {{ value.name }} {{ value.value }} </p> <script> var app = angular.module('myApp', []); app.service('myService', function() { this.valueSet = function(value){ this.valueFunction(value); }; this.valueCallback = function(callback){ var newValue = { name : "hello", value : "world" }; this.valueFunction(newValue); callback(newValue); }; this.valueFunction = function(value){ value.name += ","; value.value += "!"; return value; }; }); app.controller('myCtrl', ['$scope', 'myService', function($scope, myService) { $scope.value = { name : "你好", value : "世界" }; //回调方式改版 $scope 的值 myService.valueCallback(function(value){ $scope.value = value; }); }]); app.controller('myCtrl2', ['$scope', 'myService', function($scope, myService) { $scope.value = { name : "你好", value : "世界" }; myService.valueSet($scope.value); }]); </script> </body> </html>
可以是可以,但是不推荐。将controller的数据封装到一个对象里,然后当作参数传到factory的方法里就可以了。
一般我在做项目的时候,服务就做俩用途:
第一,是作为公共方法,比如提交方法,弹出框的某些服务等等类似的通用的服务。
第二,是根据特殊的需求在某几个控制器之间传递参数或对象时候使用,这种情况很少,一般也不推荐~
你说的在服务中去改变顶级控制器的变量,我感觉你是提供了你思路上的一个片段,而不是根本需求点~你的需求是什么?
没法直接操作,有两种方式:
1、通过回调函数的方式改变值
2、通过传对象参数的方式改变值(array,object)
可以是可以,但是不推荐。
将controller的数据封装到一个对象里,然后当作参数传到factory的方法里就可以了。