从ng-click调用动态函数

4

我有以下两个函数/类

function Availability(){    
    this.Click = function (){
        alert("Availability");
    }
}

function Help(){
    this.Click = function (){
        alert("Help");
    }
}

我已经创建了以下模块:

我创建了以下模块:

var Gadgetory = angular.module("Gadgetory", []);

以下是控制器内容:

var ToolbarController = Gadgetory.controller('ToolbarController', ['$scope',
    function ($scope)
    {
        $scope.greeting = 'Gadgetory!';
        $scope.Gadgets = [
            { name: "Availability", icon: "available.png", object: new Availability() },
            { name: "Help", icon: "help.png", object: new Help() }
        ];
    }
]);

现在在我的HTML代码中,我想调用字典中每个小工具的点击方法,类似这样:
<div ng-repeat="gadget in Gadgets">
    <img ng-src="/Gadgets/{{gadget.icon}}" ng-click="{{gadget.object}}.Click()"/>
</div>

但是这个方法没有生效,你能帮我吗?


生成的代码是什么? - akonsu
1个回答

13

在调用方法时,不应包含{{}}指令 - 它们用于将值打印到屏幕或将值设置为元素属性。要调用方法和操作数据,只需使用纯JavaScript语法:

<div ng-repeat="gadget in Gadgets">
    <img ng-src="/Gadgets/{{gadget.icon}}" ng-click="gadget.object.Click()"/>
</div>

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接