Rumah > Soal Jawab > teks badan
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
PHP中文网2017-05-15 16:51:46
Saya mengesyaki anda telah ditipu oleh warisan prototaip skop
Arahan seperti ion-content
ini mempunyai skopnya sendiri Kemudian anda menulis ng-model="myMessage"
dalam paparan Sebenarnya, kandungan yang anda isi dalam kotak input diletakkan pada skop ion-item
dan anda roomCtrl
. dalam skop myMessage
masih undefined
; dan selepas anda menetapkan nilai kepada myMessage
dalam pengawal, kerana tiada atribut ion-item
pada skop myMessage
, ia akan berubah daripada Carian pada rantai prototaip, dan kemudian cari roomCtrl
pada skop myMessage
.
Ini adalah penyelesaian saya:
$scope.ctrlScope = $scope
<input ng-model="ctrlScope.myMessage" />
高洛峰2017-05-15 16:51:46
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:""}
$scope.sendMyMessage = function () {
console.log($scope.Messages.myMessage);
}
<input ng-model="Messages.myMessage" />
另外我用angular.js正在开发webapp,可以交流下,http://php.xlanlab.com/webapp/mobile-angular-ui-master/my/index.html