[英]Why is $scope not getting passed to controller?
由於某種原因,未將$scope.username
傳遞給我的控制器。 單擊時, registerUser()
$scope.username
未定義。 我確實有一個作用域,並且該函數僅運行$ scope.username。
例如:
HTML:
<input bs-form-control
type="text"
ng-model="username"
label="Username"
/>
<button class="btn btn-primary" ng-click="registerUser()">Register</button>
控制器:
.controller("loginController", ['$scope',
function ($scope) {
$scope.registerUser = function(){
console.log($scope.username) // <=== undefined!
}
}])
我的控制器使用狀態傳遞:
.state('register', {
url: "/register",
templateUrl: "/static/html/profile/register.html",
controller: "loginController"
})
我認為bs-form-control
創建了一個新的隔離范圍。 您應該做的是使用范圍內的對象( 我的ng模型是否真的需要一個點來避免子級$ scope問題? )或使用AngularJS 1.2中引入的新“ constroller as”語法。 它也適用於ui-router!
看到這個矮人: http ://plnkr.co/edit/hkmMGbTtURSHDH84miiK?p=preview
.state('register', {
url: "/register",
templateUrl: "/static/html/profile/register.html",
controller: "loginController as loginCtrl"
})
<input bs-form-control type="text" ng-model="loginCtrl.username" label="Username" />
<button class="btn btn-primary" ng-click="loginCtrl.registerUser()">Register</button>
使用this
代替$scope
:
.controller("loginController", [
function () {
this.registerUser = function(){
console.log(this.username);
}
}
])
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.