ng-model不会影响范围,我无法理解为什么。
以下是我的大部分HTML:
<ion-view view-title="{{ inputType | uppercase | translate }}">
<ion-content class="padding">
<div class="list">
<label class="item item-input">
<input ng-model="amount" class="text-align-center" type="number" placeholder="{{ 'AMOUNT' | translate }}">
</label>
</div>
<button class="button button-block button-stable" ng-click="okAmount()">{{ 'SAVE' | translate }}</button>
</ion-content>
</ion-view>
以下是我的大多数控制人员:
(function(){
angular.module('mb')
.controller('EnterAmountCtrl', ['$scope', '$state', '$filter', '$translate',
function($scope, $state, $filter, $translate) {
$scope.amount = '';
$scope.okAmount = function() {
console.log($scope.amount);
};
}]);
})();
我不认为这可能是一个范围问题。没有嵌套控制器。路由处理如下:
$stateProvider.state('enter-amount', {
url: '/enter-amount/:inputType',
templateUrl: 'templates/enter-amount.html',
controller: 'EnterAmountCtrl'
});
无论我在文本框中写什么,$ scope.amount仍然是未定义的。可能导致这种情况的原因是什么?
答案 0 :(得分:4)
更新回答:
跟进Sunil D和Dayan Moreno对这个问题的评论,将原始值抛在对象中是最好的方法,并且避免在代码中使用$ parent:
ng-model='object.amount'
只要子范围中不存在对象,它将引用父范围中找到的对象变量并适当地设置金额值。
原始回答:
还没有使用过ion,我会假设ionView或ionContent是一个创建自己范围的指令。
您正在设置子作用域的value属性,然后尝试访问父作用域的value属性。访问父作用域的金额值可能会为您解决问题:
ng-model='$parent.amount'