以不同方式设置指令隔离范围参数

时间:2015-04-19 12:48:08

标签: angularjs

这是我的指令定义:

myApp.directive('myCategory', [function () {
  return {
    restrict: 'E',
    scope: {
      category: '=someCategory',
    },
    templateUrl: 'category.html',
    controller: 'CategoryCtrl'
  };
}])

有时我知道我的类别的名称是什么,并希望以下列方式使用我的指令:

  1. <my-category some-category="flowers"></my-category>
  2. 但在某些情况下,类别取决于一些动态数据,我想使用我的控制器中的函数:

    1. <my-category some-category="getCategory()"></my-category>
    2. 这可能吗?

      实际上,它对我不起作用......在我的指令控制器中,CategoryCtrl:

      案例1:$scope.category is undefined

      在第2种情况下:$ scope.category是函数返回的名称,没关系

      任何人都可以帮我吗?这有什么不对?

1 个答案:

答案 0 :(得分:0)

在第一种情况下,flowers被解释为封闭控制器范围的属性。如果你想传递文字字符串&#34; flowers&#34;,你需要使用

some-category="'flowers'"