0
私は予定リストアプリケーションを作成していますが、タスクがそこに5秒以上置かれていると、タスクはconsole.loggedの期限が切れます。しかし、現在、タスクは2回記録されています。角度制御器を2回呼び出す
テンプレート:
<h2>Active</h2>
<div class = "container">
<div class="tasks">
<ul>
<li ng-repeat= "task in home.tasks" class="task">{{task.task}}{{home.time(task)}}</li>
</ul>
</div>
</div>
コントローラー:
(function(){
function HomeCtrl(Task, $timeout){
// Tasks
this.tasks = Task.all;
//Adding tasks
this.taskName = null;
this.addTask = Task.addTask;
//Expired
this.time = Task.createdAt;
}
angular
.module('Blocitoff')
.controller('HomeCtrl', ['Task', '$timeout', HomeCtrl]);
})();
サービス:
(function(){
angular
.module('Blocitoff')
.factory('Task', ['$firebaseArray', Task])
function Task($firebaseArray){
var ref = firebase.database().ref().child("tasks");
var tasks = $firebaseArray(ref);
return {
all: tasks,
addTask: function(){
tasks.$add({ task: this.taskName, timeCreated: (Date.now())}).then(function(ref) {
var id = ref.key;
console.log("added record with id " + id);
tasks.$indexFor(id); // returns location in the array
});
alert(this.taskName + " has been added to active tasks");
},
createdAt: function(task){
if(Date.now() - task.timeCreated > 5000){
console.log(task.task + " has expired");
};
}
};
}
})();
であります2回印刷されますか? –
あなたには、あなたが話していることを伝えるのが難しい「仕事」という名前の物がたくさんあります。 '{{home.time(task)}}'はダイジェストサイクル中に複数回呼び出される関数です。それは1つですか? – georgeawg
はい '{{home.time(task)}}'は複数回呼び出されている関数です。私はそれを一度呼びたいだけです。それを呼び出す正しい方法は何でしょうか? – Tchbell