我是Angular的新手,嘗試使用指令創建電話留言日誌應用程序。用戶輸入消息並單擊該按鈕,並將其顯示在下面的「消息」日誌中。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) {
}
}
})
請解決方案的相關部分添加到應答(如添加日期屬性,而通過$ index添加'track') - 否則就是很好的答案。 –
謝謝!只是好奇而已,「按指數追蹤」工作如何? – dgalati54