这个plunker最好:http://plnkr.co/edit/y3uacaQSc1MbrWKfb0At?p=preview
但这是代码:
var app = angular.module('plunker', []);
app.controller('MainCtrl', function($scope,testFactory) {
$scope.name = 'World';
var test_var = "iceland";
$scope.testFunction = testFactory.testFunction;
});
app.service('testFactory',function(){
this.testFunction = function(){
alert(test_var);
};
})
并在html中:
<body ng-controller="MainCtrl">
<p ng-click="testFunction()">Hello {{name}}!</p>
</body>
现在,正如你在plunkr中看到的那样,test_var是未定义的,这是有道理的,因为它没有定义......所以我想从控制器传递它,但如果我做了类似的事情
$scope.testFunction = testFactory.testFunction(test_var);
,然后testFunction因为括号而与警报一起执行。但我只想传递test_var,而不是执行该函数。我该如何传递?
答案 0 :(得分:3)
在一个函数中包含调用,以便仅在testFactory.testFunction(test_var)
为...时调用$scope.testFunction()
的调用。
var app = angular.module('plunker', []);
app.controller('MainCtrl', function($scope,testFactory) {
$scope.name = 'World';
var test_var = "iceland";
$scope.testFunction = function() {
testFactory.testFunction(test_var);
};
});
app.service('testFactory',function(){
this.testFunction = function(test_var){
alert(test_var);
};
})