我在指令
中有以下内容scope.actions = {
getSearch: searchResultPageService.getSearch(scope.keywords, scope.settings)
};
模板如下
<button class="btn btn-primary" type="button" data-ng-click="actions.getSearch()">Send</button>
在我的服务中,我只是检查是否使用console.log传递了scope.keywords
和scope.settings
,但没有输出。
我的ngClick用法错误是什么
(function () {
'use strict';
angular
.module('app.search')
.factory('searchResultPageService', [
'$timeout',
function ($timeout) {
var $module = {
getSearch: function(keywords, settings){
console.log(keywords);
console.log(settings);
答案 0 :(得分:2)
scope.actions.getSearch
是从调用searchResultPageService.getSearch
返回的结果,而不是函数本身。
您需要将对该函数的引用传递给视图:
scope.actions = {
getSearch: searchResultPageService.getSearch
};
修改您的视图点击处理程序,如下所示:
<button class="btn btn-primary" type="button" data-ng-click="actions.getSearch(keywords, settings)">Send</button>
或创建一个新的匿名函数,该函数将发送到视图:
scope.actions = {
getSearch: function() {
searchResultPageService.getSearch(scope.keywords, scope.settings);
}
};
在这种情况下,您的视图代码保持不变。我个人会在那里选择第二个选项。
答案 1 :(得分:0)
您正在影响
searchResultPageService.getSearch(scope.keywords, scope.settings)
结果
actions.getSearch
这不是一种方法,如果
除外searchResultPageService.getSearch(scope.keywords, scope.settings)
返回一个方法 - 我有点怀疑 -
试试吧:
scope.actions = {
getSearch: function() {
searchResultPageService.getSearch(scope.keywords, scope.settings);
}
};