包含模板的指令无法使用范围中的值进行设置

时间:2015-01-10 01:16:07

标签: angularjs angularjs-directive angularjs-scope

我正在尝试在范围内设置值(在我的情况下来自服务),然后在模板中使用它们。

注释掉的模板行显示了我期望的值,但未注释的模板行不能按预期工作。为了便于阅读,我从ng-dropdown-multiselct中删除了一些属性。如果我手动设置值,ng-dropdown-multiselect按预期工作,所以我知道标记是正确的,只是无法设置值。

非常感谢任何帮助!

  .directive('myFilter', [function () {
    return {
      //template: '<div>{{ PreparersCustomTexts }}</div>',
      template: '<div ng-dropdown-multiselect="" translation-texts="PreparersCustomTexts"></div>',
      restrict: 'E',
      scope:'=',
      link: function postLink(scope, element, attrs) {

        scope.PreparersCustomTexts = { buttonDefaultText: 'Select Preparers' };

      }
    };
  }])
  ;

1 个答案:

答案 0 :(得分:0)

问题可能在你的HTML中。你应该把它添加到你的问题中。

同时,这里使用您的指令的示例代码,以及带有您的指令的plunker成功获取模板定义的范围值!

&#13;
&#13;
angular.module('plunker', [])
.directive('myFilter', function () {
    return {
      template: '<div>{{ PreparersCustomTexts }}</div>',
      //template: '<div translation-texts="PreparersCustomTexts">test</div>',
      restrict: 'E',
      scope:'=',
      link: function postLink(scope, element, attrs) {

        scope.PreparersCustomTexts = { buttonDefaultText: 'Select Preparers' };

      }
    };
  })
  ;
&#13;
<!DOCTYPE html>
<html>

  <head>
    <script src="//ajax.googleapis.com/ajax/libs/angularjs/1.3.8/angular.min.js"></script>
    <script src="app.js"></script>
  </head>

  <body ng-app="plunker">
    <div>
      <p>Hello {{name}}!</p>
      <my-Filter></my-Filter>
    </div>
  </body>

</html>
&#13;
&#13;
&#13;