0
我正在尝试向角度中动态构造的div添加一个控制器。但是,控制器似乎并未加载,我无法将相应的事件添加到点击功能中。在AngularJS中添加控制器到动态构造的div
在下面的例子中,我在称为'employeeTableCtrl'的独立父控制器中构造了这个div。在父控制器内,当用户点击'更多信息'按钮时,新的div被构建。在这个孩子的容器中,我正在寻找附加一个新的控制器。
$scope.moreInfo = function(employee) {
$("<div class='employeeWindow' ng-controller='employeeWindowCtrl'> " +
"<button class='closeButton' ng-click='close()'> x </button> </div>".appendTo("#employees");
}
,独立的控制器我:都被正确地构建
.controller('employeeWindowCtrl', [
'$scope', function ($scope) {
$scope.close = function() {
alert('clicked the x');
}
}
])
的DIV,但在“employeeWindowCtrl”没有被安装成我的“点击()”函数没有被执行。
有没有人有任何提示?也许我接近这一切都是错误的?
感谢
似乎是一种奇怪的做事方式。 ng-show可能会处理所有这些 - 只需制作并有条件显示即可。 – 2014-11-05 14:54:38
我认为你正在接近一切错误。让角创建所需的元素,而不是从您的控制器操纵DOM。控制器不是那样的。例如,你可以使用'ng-if'指令。 – akonsu 2014-11-05 14:54:58
如果你使用代码以外的代码注入html,你需要使用'$ compile',这样角度就知道它了。正如其他人已经注意到这是一个可怕的方法 – charlietfl 2014-11-05 14:57:38