2016-04-03 00:04发布
希望通过服务在两个controller传值,代码如下:
但是并没有成功。。。
这单括号是什么鬼?
控制台只能得到setter 却没有getter请问这是为什么
1、那个单括号不是什么鬼,那是一个空对象。因为你在服务里面设置了myData为{},而且,你的getCtrl这个controller一开始就去获取了这个值,所以说在页面上会显示{};
myData
{}
getCtrl
2、在你点击add按钮的时候,其实已经把input里面的值存入了myData中,只是你的getCtrl不会去获取而已,简单一点,你可以在getCtrl中也设置一个按钮来点击获取myData的值;
add
3、在你的_getter函数中,你的这一句console.log..放在了return语句后面,无论怎么执行,都不会有输出的。
_getter
console.log..
return
我按照你的代码稍微加了一点修改,你可以看看。
<div ng-app="myApp"> <div ng-controller="inputCtrl"> <input type="text" ng-model="value" /> <button ng-click="setValue()">Add</button> </div> <div ng-controller="getCtrl"> <div>{{ value }}</div> <button ng-click="getValue()">Get</button> </div> </div> angular.module(myApp, []) .factory(factory_getValue, function () { var myData = {}; function _getter() { console.log(myData); return myData; } function _setter( a ) { myData = a; } return { getter: _getter, setter: _setter }; }) .controller(inputCtrl, function ( $scope, factory_getValue ) { $scope.setValue = function () { factory_getValue.setter($scope.value); } }) .controller(getCtrl, function ( $scope, factory_getValue ) { $scope.getValue = function () { // 点击按钮获取myData的值 $scope.value = factory_getValue.getter(); } });
<div ng-app="myApp"> <div ng-controller="inputCtrl"> <input type="text" ng-model="value" /> <button ng-click="setValue()">Add</button> </div> <div ng-controller="getCtrl"> <div>{{ value }}</div> <button ng-click="getValue()">Get</button> </div> </div>
angular.module(myApp, []) .factory(factory_getValue, function () { var myData = {}; function _getter() { console.log(myData); return myData; } function _setter( a ) { myData = a; } return { getter: _getter, setter: _setter }; }) .controller(inputCtrl, function ( $scope, factory_getValue ) { $scope.setValue = function () { factory_getValue.setter($scope.value); } }) .controller(getCtrl, function ( $scope, factory_getValue ) { $scope.getValue = function () { // 点击按钮获取myData的值 $scope.value = factory_getValue.getter(); } });
最多设置5个标签!
付费偷看金额在0.1-10元之间
1、那个单括号不是什么鬼,那是一个空对象。因为你在服务里面设置了
myData
为{}
,而且,你的getCtrl
这个controller一开始就去获取了这个值,所以说在页面上会显示{}
;2、在你点击
add
按钮的时候,其实已经把input里面的值存入了myData
中,只是你的getCtrl
不会去获取而已,简单一点,你可以在getCtrl
中也设置一个按钮来点击获取myData
的值;3、在你的
_getter
函数中,你的这一句console.log..
放在了return
语句后面,无论怎么执行,都不会有输出的。我按照你的代码稍微加了一点修改,你可以看看。
一周热门 更多>