2016-05-16 91 views
1

引用控制器對象我有一個簡單的指令,像這樣:角1:內模板

myApp.directive('myDirective', function() { 
    var controller = ['$scope', function($scope) { 
    function init() { 
     this.name = "Sim"; 
     this.age = 6; 
    } 
    init(); 
    }]; 
    //define the directive object 
    var directive = {}; 
    directive.controller = controller; 

    directive.restrict = 'E'; 
    directive.templateUrl = "hello.html"; 
    directive.controllerAs= 'cus';//defining a name to the controller. 
    return directive; 
}); 

在我的HTML模板我想引用類似以下控制變量(請注意控制上述被引用爲CUS):

<div> 
    <div>Name: {{cus.name}}</div> 
    <div> Age: {{cus.age}}</div> 
</div> 

這是我plunk的問題

爲什麼不工作這個片段?

+0

我可以看到,在你的控制器,你注入範圍,但沒有被寫入範圍是什麼? – thsorens

+0

我想將值存儲在控制器對象中,而不是在其範圍內。 https://toddmotto.com/digging-into-angulars-controller-as-syntax/ – Cyril

+1

顯然有一段時間,因爲我正在使用angular;)但是$ scope可能不應該被注入,它不會改變任何東西雖然 – thsorens

回答

2

可能的問題是'this'的用法。而不是使用'this',請使用controllerAs變量。

例:

var cus = this; 

function init() { 
     cus.name = "Sim"; 
     cus.age = 6; 
    } 

init(); 
+0

謝謝@Sarathy你釘了它,我從來沒有意識到,在init()這裏指的是窗口。對於那些可能陷入類似陷阱的人來說,這是固定的plunk http://plnkr.co/edit/H9EoLR?p=preview。 – Cyril