Я новичок в Angular и пытаюсь создать приложение Phone Message Log с помощью директив. Пользователь вводит сообщение и нажимает кнопку, и он отображается в журнале «Сообщение» ниже.AngularJS Изолированная область и привязка контроллера
Я пытаюсь получить приложение, чтобы показать дату сообщения, также используя метод getDate() в контроллере. Тем не менее, я нахожу, что всякий раз, когда я добавляю новое сообщение, все даты перезаписываются. Я предполагаю, что это связано с общим объемом? Я не совсем уверен, как обойти это.
Смотрите эту скрипку для примера: http://jsfiddle.net/dgalati/qpo87d31/
<div ng-controller="AppCtrl">
<phone number="000 000 0000" make-call="addToMessageLog(number, message)"></phone>
<h1>Message Log</h1>
<li ng-repeat="message in messageLog"><b>Date:</b> {{getDate()}} <b>Message:</b> {{message}}</li>
</div>
var app = angular.module("phoneApp", [])
app.controller("AppCtrl", function ($scope) {
$scope.getDate = function() {
return new Date();
}
$scope.messageLog = [];
$scope.addToMessageLog = function (number, message) {
//alert(number + " " + message)
//alert(message);
$scope.messageLog.push(message);
for (var x = 0; x < $scope.messageLog.length; x++) {
console.log($scope.messageLog[x]);
}
}
})
app.directive("phone", function() {
return {
restrict: "E",
scope: {
number: "@",
network: "=",
makeCall: "&"
},
template: '<input type="text" ng-model="value" style="width:350px;">' +
'<div class="button" ng-click="makeCall({number:number, message:value})">Call {{number}} and leave a message</div>',
link: function (scope, element, attrs) {
}
}
})
Пожалуйста, добавьте соответствующие части раствора к ответу (например, добавление свойства даты и добавление 'track by $ index') - хороший ответ в противном случае. –
Спасибо! Любопытно, однако, как работает «отслеживать по индексу»? – dgalati54