gpt4 book ai didi

javascript - AngularJS ngClick 触发服务但没有

转载 作者:行者123 更新时间:2023-11-30 16:43:03 25 4
gpt4 key购买 nike

我在指令中有以下内容

scope.actions = {
getSearch: searchResultPageService.getSearch(scope.keywords, scope.settings)
};

模板如下

<button class="btn btn-primary" type="button" data-ng-click="actions.getSearch()">Send</button>

在我的服务中,我只检查 scope.keywordsscope.settings 是否使用 console.log 传递,但没有输出。

我在使用 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);

最佳答案

scope.actions.getSearch 是调用 searchResultPageService.getSearch 返回的结果,而不是函数本身。

您需要将对该函数的引用传递给 View :

scope.actions = {
getSearch: searchResultPageService.getSearch
};

然后按如下方式修改 View 的点击处理程序:

<button class="btn btn-primary" type="button" data-ng-click="actions.getSearch(keywords, settings)">Send</button>

或者创建一个发送到 View 的新匿名函数:

scope.actions = {
getSearch: function() {
searchResultPageService.getSearch(scope.keywords, scope.settings);
}
};

在这种情况下,您的 View 代码保持不变。就我个人而言,我会选择第二个选项。

关于javascript - AngularJS ngClick 触发服务但没有,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31652287/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com