0

我有下面的例子,我想返回之前执行范围功能的内容,但它不AngularjJS指令范围功能执行

directives.directive('itemElement', function() { 
    return { 
     restrict : 'E', 
     scope : function(scope) { 
      var itemModelVar = getValue(scope.item.testdata, field.caption); 
      console.log('test');// this is not executed at all for example 
      return { 
       item : '=item', 
       field : '=field', 
       schematypes : '=schematypes', 
       itemmodel : itemModelVar 
      }; 
     }, 
     templateUrl : 'partials/templates/item-simple.html' 

    }; 
}); 

这导致itemModelVar是不确定的。

+1

我以为计算器是免费的仇敌。你很有弹性,男人! – alknows

+0

你能解释一下你为什么想这样做吗? “范围”通常不被用来做这件事。如果你想添加一个逻辑函数,请查看'controller'。 –

回答

1

AngularJS指令定义不允许这种范围的定义。指令中的范围可以通过3种方式分配。

  • scope: false
  • scope: true
  • scope: {}

在第一场景中,该指令内的范围是相同的父范围。 在第二种情形中,所述亲本范围中该指令范围prototypically继承。 在第三场景中,所定义的范围被称为分离范围,因为这里的范围并不继承而是一个新的标识符是特定的指令。隔离范围用于可重用组件。

尝试理解的范围,angularjs行为。

+0

谢谢,这让所有明确 – alknows

+0

也许这会有所帮助。 https://github.com/angular/angular.js/wiki/Understanding-Scopes – SrikanthManian

+0

再次感谢。我总是使用http://docs.angularjs.org/,尽管它很好,但没有太多的技术细节。 – alknows