首先,如果以下问题听起来很愚蠢,我真的很抱歉。我知道有文档,但没有足够的例子,我对它很陌生。
我试图创建一个可能使用的指令ng-repeat
但是似乎当指令被链接时,ng-repeat
根本没有被评估。因此,每当我尝试在函数内部调用 jQuery 函数postlink
时,jQuery 就无法工作。
<div my-directive>
<div ng-repeat="image in images">
<img ng-src="image">
</div>
</div>
范围包含如下内容:
scope.images = ['http://placehold.it/100x100', 'http://placehold.it/100x100'];
在指令中,我大致如下:
angular.module('mymodule', []).directive('myDirective', function factory() {
return {
restrict: 'A',
compile: function (tElement, tAttrs, transclude) {
// #1
return {
pre: function preLink(scope, iElement, iAttrs, transclude) {
// #2
},
post: function postLink (scope, iElement, iAttrs, controller) {
// #3
}
};
},
link: function postLink(scope, iElement, iAttrs) {
// jQuery code to convert the element
// #4
}
};
});
另外,把代码放在上面的#1、#2、#3、#4有什么区别?这里的经验法则是什么?
在哪里放置可能像 jQueryUI 的代码$( "#datepicker" ).datepicker();
?因为据我了解,该函数将操纵(转换)元素及其子元素。
谢谢。