Antara muka saya
<ion-view title = "{{roomName}}" style = "height:90%;margin-top: 45px " ng-init = "init()">
<ion-pane>
<ion-content zooming = "true" class = "no-header">
<ion-list>
<ion-item class="item item-input-inset">
<label class="item-input-wrapper">
<input type="text" placeholder="Your Message To Send" ng-model = "myMessage">
</label>
<button class="button button-small" ng-click = "sendMyMessage()">
发送
</button>
</ion-item>
</ion-list>
</ion-content>
</ion-pane>
<ion-pane style = "margin-top: 55px">
<ion-content zooming = "true" class = "no-header" style = "margin-bottom: 50px">
<ion-list>
<ion-item class = "item item-avatar-left my-item"
collection-repeat = "message in messages"
collection-item-width="'100%'"
collection-item-height="75">
<img ng-src="{{message.user.avatarUrl}}">
<h2>{{message.user.name}}:</h2>
<p>{{message.content}}</p>
</ion-item>
</ion-list>
</ion-content>
</ion-pane>
</ion-view>
Pengawal saya
atMoon.controller('roomCtrl',['$scope','myService', function ($scope, myService) {
$scope.sendMyMessage = function () {
console.log($scope.myMessage)
myService.sendMyMessage($scope, $scope.myMessage)
}
$scope.init = function () {
myService.getMessages($scope);
}
}])
$scope.myMessage yang dicetak sentiasa tidak ditentukan Jika saya menulis $scope.myMessage = "xxxx" dalam pengawal, ia boleh dipaparkan dalam antara muka, jadi data hanya boleh pergi dari model ke paparan, bukan. dari pandangan kepada model Sila Terima kasih banyak atas jawapannya
Saya mengesyaki anda telah ditipu oleh warisan prototaip skop
Arahan seperti
ion-content
ini mempunyai skopnya sendiri Kemudian anda menulisng-model="myMessage"
dalam paparan Sebenarnya, kandungan yang anda isi dalam kotak input diletakkan pada skopion-item
dan andaroomCtrl
. dalam skopmyMessage
masihundefined
; dan selepas anda menetapkan nilai kepadamyMessage
dalam pengawal, kerana tiada atribution-item
pada skopmyMessage
, ia akan berubah daripada Carian pada rantai prototaip, dan kemudian cariroomCtrl
pada skopmyMessage
.Ini adalah penyelesaian saya:
Saya juga menghadapi masalah ini Nampaknya masalah dengan versi angular.js-1.3.0 Ia tidak muncul dalam versi yang lebih rendah diuji dan lulus Saya tidak tahu Mengapa (mungkin versi baharu Angular telah mengoptimumkan jam tangan, terlalu banyak jam tangan akan menjejaskan kecekapan):
Tetapkan dalam pengawal
$scope.Messages={myMessage:""}