2015-01-10 23 views
0

我想在范围中设置值(在我的情况下是从服务中),然后在模板中使用它们。包含指令的模板无法使用范围内的值设置

注释掉的模板行显示我期望的值,但未注释的模板行不按预期工作。为了便于阅读,我从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' }; 

     } 
    }; 
    }]) 
    ; 

回答

0

这个问题可能在你的html中。你应该添加到你的问题。

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

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' }; 
 

 
     } 
 
    }; 
 
    }) 
 
    ;
<!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>

+0

如果我更改属性翻译,文本到究竟是什么在它的工作范围内设置。我应该澄清使用ng-dropdown-multiselect指令时发生的问题。 ' //这个作品 翻译,文本= “{buttonDefaultText:\ '选择报表编制\'}” //这不起作用 翻译,文本= “PreparersCustomTexts” ' 谢谢! – ben