我的角网格有问题。
这是我的代码:
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(),但这从不起作用......
你有任何想法吗?
谢谢!
答案 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!");
}