2015-01-10 48 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