给出以下指令:
myApp.directive("test", function () {
return {
restrict: 'E',
scope: {
model: "="
},
template: "<div id='dialog_{{model.dialogId}}'></div>",
replace: true,
link: function (scope, element, attrs) {
alert($("dialog_" + scope.model.dialogId).length); <-- This is 0
}
}
});
我需要在模板中的div上运行jQuery UI方法,但我似乎无法在链接函数中从DOM中获取对它的引用。有没有办法在将模板添加到DOM后运行函数?
答案 0 :(得分:1)
你有元素属性。
您可以执行var div= element.find("div");
之类的操作
如果你想要附加jquery插件,只需要$(div).jqueryPlugin();
,你必须包含jQuery,但如果你没有角度提供jQuery Lite。
答案 1 :(得分:0)
我最终做的是:
link: function (scope, element, attrs) {
$timeout(function () {
alert($("#dialog_" + scope.model.dialogId).length);
}, 0);
}
我忘了将#放在选择器前面,但它仍然只有在我使用超时时才有效。不知道为什么。