2013-11-04 49 views
0

我想試試我包括1.0.8角的js,並試圖在http://www.youtube.com/watch?v=HCR7i5F5L8c#t=587角JS例如不工作 - 錯誤參數「UserCtrl爲uCtrl」不是一個函數,得到了不確定

討論的例子,它的甩到誤差

參數「UserCtrl爲uCtrl」不是一個函數,得到了不確定

,所以我想混淆了問題,並消除混疊的思想,改變了代碼

的index.html

<html ng-app> 
<body ng-controller='UserCtrl'> 
    Hi <input ng-model='UserCtrl.user.first'> 
    <button ng-click='UserCtrl.bye()'>bye</button> 
    <script src='https://ajax.googleapis.com/ajax/libs/angularjs/1.0.7/angular.min.js'></script> 
    <script src='UserControllers.js'></script> 
</body> 
</html> 

UserControllers.js

function UserCtrl() { 
    this.user = { 
    first:'Larry', 
    last:'Page' 
    }; 
    this.bye = function() { 
    alert('bye:' + this.user.first); 
    }; 
} 

那麼上面提到的錯誤去了。但仍然提到的視頻不會發生。我甚至檢查了控制檯,發現沒有錯誤。警告不是通過點擊再見按鈕來實現的。

我試着用角JS 1.0.7和1.0.8

請幫我找到問題所在。

回答

2

在1.1.5版本中添加了控制器「as」實驗性功能,所以您是對的,這導致了問題。

沒有「as」控制器是隱含的,所以你不需要在它的前面加上變量名稱。

所以您可以更新1.1.5或更高版本,並與他使用的「作爲」還是這裏有一個版本的代碼,在較早版本角的作品貼(這裏小提琴手:http://jsfiddle.net/PDqbb/):

<body ng-app ng-controller='UserCtrl'> 
    Hi <input ng-model='user.first'> 
    <button ng-click='bye()'>bye</button> 
</body> 


function UserCtrl($scope) { 
    $scope.user = { 
    first:'Larry', 
    last:'Page' 
    }; 
    $scope.bye = function() { 
    alert('bye:' + this.user.first); 
    }; 
} 

另外,這裏有一個很好的概述「as」,其中包括使用「this」的一點,因爲它適用於這裏:http://www.thinkster.io/pick/GmI3KetKo6/angularjs-experimental-controller-as-syntax

+1

謝謝。我將版本更改爲1.1.5,現在可以使用。謝謝 。 –

相關問題