我有一个kendo-ui面板栏,我正在动态添加项目,我没有得到这些项目的ng-click事件。
这是我提取项目并附加到面板栏。
$http.get("/people").success(function (data) {
var arr = [];
if (data.success) {
$.each(data.result, function (k, v) {
var item = {
text: v.name,
items: [{
text: 'email: ' + v.email
}, {
text: '<div><button class="k-button" ng-click="edit()">Edit</button></div>',
encoded: false
}]
};
arr.push(item);
});
usersPanelBar.append(arr, usersPanelBar.element.children("li:last"));
}
});
这是我的控制器
function userController($scope, $http, $location, $cookieStore) {
$scope.edit = function () {
alert("Will this work?");
//not workng
};
}
答案 0 :(得分:3)
您需要使用$compile
服务将您添加的少量代码段绑定到范围。
您可以在此处找到示例 - angular, in directive, adding to the template an element with ng model
答案 1 :(得分:1)
如何将这样的内容添加到usersPanelBar
<div ng-repeat="item in items">
Email: {{item.email}}
<div><button ng-click="edit()">Edit</button></div>
</div>
并将所有检索到的数据推送到items数组
function(data) {
if(data.success) {
$scope.items = data.result;
}
});
有意义吗?
答案 2 :(得分:0)
app.controller('TestController', function ($compile, $scope) {
$scope.AppendDetailSuites = function () {
var html = 'button type="button" id="btn" ng-click="LoadContiguousSuite(' + SuiteId + ');" class="btn btn-white btn-sm" >Edit</button> ';
var updatedhtml = $compile(html)($scope);
$("#tbDetailContiguous").append(updatedhtml);
}
}