Я интегрирую чат в своем ионном приложении, и я хотел бы отображать сообщения, следующие за их message.userId в базе данных.Как чередовать ng-класс?
У меня есть два человека refered в MyId (меня) и otherId (другое лицо). Оба они называются переменными в моем .js-файле.
Я использую этот код:
<li ng-repeat="message in messages" ng-class="{self: message.userId = myId, other: message.userId = otherId}">
<!-- *avatar/avatar image -->
<div class="avatar">
<img src="img/82.jpg">
</div>
<!-- *msg/messages -->
<div class="msg">
<p>{{ message.text }}</p>
<time>
<i class="icon ion-ios-clock-outline"></i>
{{message.time}}
</time>
</div>
</li>
Однако отображает либо все сообщения как самостоятельно, или все сообщения как другие.
Вот мой контроллер:
.controller('Messages',['$scope', '$ionicScrollDelegate', '$timeout', '$firebaseArray', 'CONFIG', '$document', '$state', function($scope, $ionicScrollDelegate, $timeout, $firebaseArray, CONFIG, $document, $state) {
$scope.hideTime = false;
var myId = firebase.auth().currentUser.uid;
var otherId = "0LhBcBkECAXn6v12lA2rlPIsQNs2";
var discussion = myId + otherId;
var isIOS = ionic.Platform.isWebView() && ionic.Platform.isIOS();
//Recieve messages
var ref = firebase.database().ref('/messages/' + discussion);
ref.orderByChild("timestamp").on("value", function(snapshot1) {
console.log(snapshot1.val() + "HEY");
$scope.messages = snapshot1.val();
})
window.scrollTo(0,document.body.scrollHeight);
//Send messages
$timeout(function(){
$scope.sendMessage = function() {
var d = new Date();
var g = new Date();
d = d.toLocaleTimeString().replace(/:\d+ /, ' ');
g = g.toLocaleTimeString().replace(/:\d+ /, ' ') + new Date();
$scope.sendMessages = firebase.database().ref('/messages/' + discussion).push({
userId: myId,
text: $scope.data.message,
time: d,
timestamp: g
});
console.log($scope.messages);
delete $scope.data.message;
$ionicScrollDelegate.scrollBottom(true);
};
$scope.inputUp = function() {
if (isIOS) $scope.data.keyboardHeight = 216;
$timeout(function() {
$ionicScrollDelegate.scrollBottom(true);
}, 300);
};
$scope.inputDown = function() {
if (isIOS) $scope.data.keyboardHeight = 0;
$ionicScrollDelegate.resize();
};
$scope.closeKeyboard = function() {
// cordova.plugins.Keyboard.close();
};
$scope.data = {};
$scope.myId = myId;
$scope.otherId = otherId;
$scope.messages = [];
})
}]);
Любая идея?
'{самоуправления: message.userId === MyId, другой: message.userId === otherId}' - даже двойные '' == бы сделать, но не отдельные '= '! Единый '=' означает назначение, '==' или '===' означает проверку равенства. –
Опубликовать его как решение, потому что: он сработал! Я не могу поверить, что я ЭТО устал. Спасибо ! – FrenchyNYC