函数调用不动
来源:4-3 添加及查看Task(3)
Rey4
2018-02-15
;(function () {
'use strict';
var $form_add_task = $('.add-task'),
task_list = [];
init();
$form_add_task.on('submit',function (e) {
var new_task = {},$input;
e.preventDefault();//阻止默认提交
$input = $(this).find('#add-content').val();//获取新task值
if(!$input)//如果内容为空直接结束
return;
add_task(new_task);//存新task
if(add_task(new_task)) {
render_task_list();//刷新
$input.val('') ;
}
console.log("submit");
});
function add_task(new_task) {
task_list.push(new_task);//将新task推入task_list
store.set('task_list',task_list);//更新local storage
console.log('add_task');
}
function init() {
console.log('init');
task_list = store.get('task_list') || [];//初始化task_list若没有内容则返回空数组
if(task_list.length)
render_task_list();
return true;
}
function render_task_list() {
var $task_list = $('.task-list');
$task_list.html('');
for(var i = 0;i < task_list.length;i++)
{
var $task = render_task_tpl(task_list[i]);
$task_list.append($task);
}
console.log('render_task_list');
}
function render_task_tpl(data) {
console.log('render_task_tpl');
var list_item_tpl = '<div class="task-item">\n' +
' <span><input type="checkbox" name="" id=""></span>\n' +
' <span class="task-content">'+data.content+'</span>\n' +
'<span class="fr">'+
' <span class="action">删除</span>\n' +
' <span class="action">详情</span>\n' +
'</span>'+
' </div>';//模板
return $(list_item_tpl);
}
})();
其中init()中的if我给值1的话,剩下的函数都调用了,一换回.length就不调用。看起来像数据根本就没交上去
心态崩了
1回答
-
DavidXu1985
2018-03-02
如果你把if里面的语句写在下一行,那最好能加上{};
没有必要加return true; 你在调用init()时不需要对任何东西赋值为true;
你可以先尝试打印下初始情况下task_list.length的值,看下当前的值是否大于0,如果大于0就会渲染整个task list。如果等于0,就说明里面并没有值。当然,如果你确定里面肯定有值的情况下,最好检查下local storage里面是否有值。
00
相似问题