Ionic を使用して、新しい Phonegap アプリケーションを開始しています。Angular に依存しています。
だからここにビューがあります:
<ion-view title="'Login'" left-buttons="leftButtons">
<ion-content has-header="true">
<input type="text" ng-model="new_name" placeholder="Name">
{{new_name}}
<input type="text" ng-model="new_text" placeholder="Message..." ng-keydown="addMessage($event)">
</ion-content>
</ion-view>
コントローラ:
.controller('LoginCtrl', function($scope) {
$scope.new_name = "ininame";
$scope.addMessage = function(e) {
console.log($scope);
if (e.keyCode != 13) return;
console.log({name: $scope.new_name, text: $scope.new_text});
};
})
そして設定:
.state('eventmenu.login', {
url: "/login",
views: {
'menuContent' :{
templateUrl: "templates/login.html",
controller: "LoginCtrl"
}
}
})
そのため、上記の入力を変更すると {{new_name}} が更新されますが、コントローラーの $scope.new_name の値は「ininame」のままで、変更されることはありません。関数をトリガーすると、console.log にそのように表示されます。
次のように ng-controller = "LoginCtrl" で div を追加すると、次のようになります。
<ion-view title="'Login to Wallit'" left-buttons="leftButtons">
<ion-content has-header="true">
<div ng-controller="LoginCtrl">
<div ng-repeat="msg in messages"><em>{{msg.name}}</em>: {{msg.text}}</div>
<input type="text" ng-model="new_name" placeholder="Name">
{{new_name}}
<input type="text" ng-model="new_text" placeholder="Message..." ng-keydown="addMessage($event)">
</div>
</ion-content>
</ion-view>
それは完全に機能します。モジュールの構成でのコントローラーのバインドは、通常のコントローラーと同じように機能する必要があります。
混乱しています...助けてくれてありがとう!