隔离Angularjs自定义指令中的范围 - " ="

时间:2014-10-22 21:21:45

标签: javascript angularjs angularjs-directive

我试图为我正在制作的测试应用创建一个简单的指令。我的指示如下:

  .directive('answer', function(){
    return {
      restrict: "E",
      scope: {
        minl: "=",
        model: "="
      },
      template: '<input id="option" name="opts" type="text" ng-model="model" ng-minlength="minl">'
}

})

在我的html文件中,我使用此指令并使用以下代码:

<answer ng-repeat="option in newQuestion.opts" minl="minLength" model="option.value"></answer>

我的控制器范围内有一个minLength属性(等于10),而option.value也有一个范围值。但是,当我加载html页面时,我的模板不会引入这些值中的任何一个。有没有人对我在这里做错了什么有任何建议?

2 个答案:

答案 0 :(得分:1)

假设你在控制器上声明了minLength为一个int(NOT指令的控制器),你的代码完全写成Angular。

我已经在plunkr上再创建了它,所以你可以看一下,除了在Controller上声明minLength值之外我没有改变任何东西。的 Plunk, Please notice that I called it on my end minl at the controller. thats the only difference

  scope: {
    minl: "=",
    model: "="
  }

是要走的路。

答案 1 :(得分:0)

编写指令范围分配,如下所示:

       scope: {
         minl: "=myMinl",
         model: "=myModel"
  }

然后在你的标记中执行此操作:

<answer ng-repeat="option in newQuestion.opts" myMinl="minLength" myModel="option.value"></answer>