在angularjs指令中添加手表
我正在尝试在指令中添加$watch。该指令用于向导创建,当我读取现有数组并使用ng repeat in指令时,它会按预期工作,但如果我更新我的数组,数组中新添加的项不会添加到创建向导的附加指令中 请参考了解问题。在这个plunker script.js中有数组数据,我将通过点击按钮更新这些数据,并在html页面上的向导指令下以ng repeat的形式重新读取它们 指令是在angularjs指令中添加手表,angularjs,angularjs-directive,angularjs-ng-repeat,Angularjs,Angularjs Directive,Angularjs Ng Repeat,我正在尝试在指令中添加$watch。该指令用于向导创建,当我读取现有数组并使用ng repeat in指令时,它会按预期工作,但如果我更新我的数组,数组中新添加的项不会添加到创建向导的附加指令中 请参考了解问题。在这个plunker script.js中有数组数据,我将通过点击按钮更新这些数据,并在html页面上的向导指令下以ng repeat的形式重新读取它们 指令是 directive('wizard', function($timeout, $compile) { var
directive('wizard', function($timeout, $compile) {
var opts = {
headerTag: "h3",
bodyTag: "section",
transitionEffect: "slideLeft",
autoFocus: true,
enableAllSteps: true,
enableKeyNavigation: false,
enableCancelButton: true,
enableFinishButton: true,
showFinishButtonAlways: false
};
return {
restrict: 'E',
replace: true,
template: '<div class="mywizard"></div>',
compile: function (tEl) {
return function(scope, element, attrs, ngModel) {
var stepsEl;
element.wrapInner('<div class="steps-wrapper">');
element.children('.steps-wrapper').append(tEl.context.innerHTML);
var content = $compile(element.contents())(scope);
$timeout(function () {
element.children('.steps-wrapper').steps(opts);
})
}
}
};
});
指令('wizard',函数($timeout,$compile){
变量选项={
头像:“h3”,
bodyTag:“节”,
过渡效果:“slideLeft”,
自动对焦:对,
enableAllSteps:正确,
enableKeyNavigation:false,
enableCancelButton:true,
enableFinishButton:true,
showFinishButtonAlways:false
};
返回{
限制:'E',
替换:正确,
模板:“”,
编译:函数(tEl){
返回函数(范围、元素、属性、模型){
var-stepsEl;
元素wrapInner(“”);
element.children('.steps wrapper').append(tEl.context.innerHTML);
var content=$compile(element.contents())(范围);
$timeout(函数(){
子元素('.steps包装器').steps(opts);
})
}
}
};
});
请分享我应该在哪里使用手表的想法。我没有太多时间完全查看plunkr,但您的手表与控制器配合得很好。这就是它需要的地方。但我相信,要从外部指令传播价值,您最好使用在服务中捕获和更改的数据。首先,您应该感兴趣的是,如果这个“jquery步骤”支持直接向DOM添加新元素。否则我怀疑你能很容易地完成这一切。我的意思是你可以很容易地添加手表-但下一步呢?假设数组已更改-您将重新生成所有指令。。。我想在阵列发生变化时添加一些步骤,但不确定为什么它不起作用。我没有太多时间完全观察plunkr,但你的手表与控制器配合得很好。这就是它需要的地方。但我相信,要从外部指令传播价值,您最好使用在服务中捕获和更改的数据。首先,您应该感兴趣的是,如果这个“jquery步骤”支持直接向DOM添加新元素。否则我怀疑你能很容易地完成这一切。我的意思是你可以很容易地添加手表-但下一步呢?假设数组已更改-您将重新生成所有指令。。。我想在数组更改时添加步骤,但不确定为什么它不起作用