【发布时间】:2016-03-15 06:30:12
【问题描述】:
我正在尝试创建一个视图,该视图仅通过 ng-model 接收电子邮件和密码,然后通过 ng-click 将其传递给控制器中的登录功能。我似乎无法让它正常工作,过去关于范围继承和 $parent 的帖子似乎没有为我解决问题。
ng-model 位于 ion-content 和 label 下,这就是我的假设导致范围继承问题的原因。此外,视图 {{user.email}} 中发生的数据绑定永远不会更新。
这是一个我试图重新创建问题的 plunker:http://plnkr.co/edit/JFlO64xi4nG84xqFDYsv?p=info
HTML
<body ng-controller='MyCtrl'>
<ion-content>
<div class="list">
<label class="item item-input">
<input type="email" placeholder="Enter Email" ng-model="user.email">
</label>
<label class="item item-input">
<input type="email" placeholder="Enter Password" ng-model="user.password">
</label>
{{user.email}}
{{user.password}}
<button class="button button-block button-positive" ng-click="login(user.email,user.password)">Log in</button>
</div>
</ion-content>
</body>
JavaScript
angular.module('starter', ['ionic'])
.controller('MyCtrl', function($scope) {
$scope.user = {
email: '',
password: ''
}
$scope.login = function(email,password) {
console.log("email is: ",email); // will log undefined
console.log("password is",password); // will log undefined
};
})
我试过 $parent.user.email 但这也不起作用。有人可以帮我弄清楚这里出了什么问题吗?
【问题讨论】:
-
我敢打赌
正在创建一个孤立的范围。 -
不是答案,但为什么首先要
login(user.email,user.password)?无论如何,您都可以在login()中访问$scope.user... -
@davidkonrad 老实说,我不确定我是否见过很多使用和未使用该方法的代码示例。我实际上不知道这样做的标准方法。
-
@ChrisHermut 我相信它也是如此;但是,使用
user.email而不是email应该可以解决我所读到的问题。
标签: javascript angularjs ionic-framework ionic