Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在angularjs指令中添加手表_Angularjs_Angularjs Directive_Angularjs Ng Repeat - Fatal编程技术网

在angularjs指令中添加手表

在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

我正在尝试在指令中添加$watch。该指令用于向导创建,当我读取现有数组并使用ng repeat in指令时,它会按预期工作,但如果我更新我的数组,数组中新添加的项不会添加到创建向导的附加指令中

请参考了解问题。在这个plunker script.js中有数组数据,我将通过点击按钮更新这些数据,并在html页面上的向导指令下以ng repeat的形式重新读取它们

指令是

  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添加新元素。否则我怀疑你能很容易地完成这一切。我的意思是你可以很容易地添加手表-但下一步呢?假设数组已更改-您将重新生成所有指令。。。我想在数组更改时添加步骤,但不确定为什么它不起作用