0
我試圖在角度js中創建一個「待辦事項列表」。完成任務後,我希望能夠點擊複選框標記完成。雖然它正在處理index.html,但我無法通過測試。無法獲得業力測試傳遞到控制器上
這是我的測試:
describe('ToDoListController', function() {
beforeEach(module('ToDoList'));
var ctrl;
beforeEach(inject(function($controller) {
ctrl = $controller('ToDoListController');
}));
it('initialises with an empty list and term', function() {
expect(ctrl.listDisplay).toEqual([]);
expect(ctrl.taskTerm).toBeUndefined();
});
describe('when viewing the to do list', function(){
it('displays list items', function() {
ctrl.taskTerm = "hello";
ctrl.addTask();
expect(ctrl.listDisplay[0].task).toBe("hello");
});
it('is completed when clicked', function() {
ctrl.taskTerm = "hello";
ctrl.addTask();
ctrl.isCompleted("hello");
expect(ctrl.listDisplay[0].completed).toBe(true)
});
});
});
,這是我的控制器:
toDoList.controller('ToDoListController', [function() {
var self = this;
self.listDisplay = []
self.addTask = function() {
self.listDisplay.push({task: self.taskTerm, completed: false})
};
self.isCompleted = function(item) {
var i = self.listDisplay.indexOf(item)
self.listDisplay[i].completed = true
}
}]);
錯誤我得到的回覆是:
TypeError: Cannot set property 'completed' of undefined
at self.isCompleted (/Users/edobrien/Documents/Projects/todo_challenge/js/toDoListController.js:13:35)
at Object.<anonymous> (/Users/edobrien/Documents/Projects/todo_challenge/test/toDoListController.spec.js:26:12)
僅供參考,錯誤發生在「ctrl.isCompleted(」hello「);」行
任何幫助你們可以給予將不勝感激!
我現在越來越\t類型錯誤:無法讀取的未定義的屬性「的forEach」,是有什麼我失蹤? – Munded
有一個錯字,我寫了ListDisplay而不是lisDisplay ...更新它......並且你不應該只是C&P代碼! ; P –
哈哈對不起,我只是看看它是否有效! ListDisplay是正確的數組,我很困惑什麼你askign更正 – Munded