我在控制器中有一个功能:
$scope.passValues = function (param1){
return "foo";
};
console.log($scope.passValues());
这将记录foo
,但是:
$scope.passValues = function (param1){
return param1;
};
console.log($scope.passValues());
此 我不明白为什么,因为:
$scope.passValues = function (param1){
console.log(param1);
return param1;
};
将记录robert
,当用作passValues(item.firstName)
时,它会变为coorect。
我的问题是第二个例子,我需要函数正确返回param1值,以便以后可以在控制器中使用。
答案 0 :(得分:3)
确保将值传递给函数,否则参数将为undefined
来自控制器
$scope.passValues('Robert')
从你的观点来看
<div>
{{ passValues('Robert') }}
</div>
答案 1 :(得分:0)
不确定为什么降级这是一个合法的问题,这就是答案,我想我被误解或给出了不好的解释。
我不得不使用服务,在另一个控制器中使用param1:
第一个控制器:
$scope.passValues = function (param1){
myservice.firstName = param1;
};
服务:
.service('myservice', function() {
})
第二个控制器:
.controller('detail',
function ($scope, myservice) {
$scope.content = myservice.firstName;
});
然后在模板上,{{content}}正确显示param1(firstName)的值。
答案 2 :(得分:0)
当我试图寻找scope()
返回未定义的可能原因时,我遇到了这个问题......
在我的情况下,我有一个myApp
模块MyController
$scope.reloadItems
函数:
<div ng-app='myApp' ng-controller='MyController' id="myAngularApp">
我为此加载的js文件:
angular.min.js
,ng-infinite-scroll.min.js
my_angular_app.js
定义了我的模块和some_view.js
我在做的事情:
$('#myAngularApp').scope().reloadItems();
现在scope()
经常在模块无法实例化或存在错误时返回undefined
。在这种情况下,这是因为顺序,我加载.js文件,因为:
在$('#myAngularApp').scope()
有机会构建此模块之前执行了my_angular_app.js
...
...所以,如果其他人像我一样来到这里,我希望这会有所帮助:)