ng-click上的调用函数(cellTemplate)

时间:2017-01-12 10:21:58

标签: javascript angularjs

我的角网格有问题。

这是我的代码:

cellTemplate: '<div id="btn_excluir" ng-click="grid.appScope.doSomething()" class="btn primary glyphicon glyphicon-trash"></div> <div class="btn primary glyphicon glyphicon-edit" onclick="alert();"></div>'

vm.doSomething = function() {
    alert("ALERT!");
 }

我想调用函数doSomething(),但这从不起作用......

你有任何想法吗?

谢谢!

3 个答案:

答案 0 :(得分:1)

如上所述,您遇到了命名问题,因此不会调用该函数。

另一件事是,当你添加这样的html时,你需要触发Angular来实际注册你已经添加为javascript的指令。那是因为当您在html中直接编写角度指令时,当app开始运行时,它将通过HTML模板并查找ng-click等指令并将其转换为html代码。

如果您在应用程序运行期间以角度手动添加html代码,则需要手动触发此编译。

编译Suren的那个是在讨论。

还有一件事:当我查看您的代码时,您似乎可以轻松地在模板中执行此操作。我不确定你想做什么,但它可能是更好的方式,你不必做这个手动编译等。

答案 1 :(得分:0)

尝试更改new MySqlConnection("Server=127.0.0.1; port= 3306; Database=battlehunt_db; UserId=user2; Password=whatever;"); 而不是ng-click ng-click="doSomething()"

也让我知道您在使用单元格模板添加html时是否使用了$compile

  

$ compile表示:将HTML字符串或DOM编译为模板并生成模板函数

答案 2 :(得分:0)

此处为解决方案

  cellTemplate: '<div id="btn_excluir" ng-click="grid.appScope.doSomething()" class="btn primary glyphicon glyphicon-trash"></div> <div class="btn primary glyphicon glyphicon-edit" onclick="alert();"></div>'

     var vm = this;
     vm.gridOptions.appScopeProvider = vm;
     vm.doSomething = function () {
        alert("ALERT!");
    }