我是一般的新人。我很难理解can.fixture和can.observe之间的区别以及它们是如何被使用的?
据我所知can.observe只是听一个函数并一直看着它,它需要两个参数。至于夹具,我真的输了,因为我一直听到偷窃。
答案 0 :(得分:1)
他们完全不同:
观察是可观察的对象,只要值发生变化,您就可以接收事件:
var ob = new can.Observe({
name: 'Test'
});
ob.bind('change', function(ev, attr, how, newVal, oldVal) {
console.log('Something on ob changed, the new value is: ' + newVal);
});
ob.attr('name', 'Changed');
这在许多地方都很有用,并且可以使视图绑定成为可能(因此,当使用Observe渲染视图时,只要自动更新“观察”,HTML就会发生变化)。阅读更多信息in the documentation。
Fixture只是模拟AJAX响应,可以帮助您测试您的应用程序或实现 即使您的REST后端尚未启动并运行,该功能仍然存在:
// Static fixture
can.fixture("tasks", "fixtures/tasks.json");
can.ajax({
url: 'tasks',
dataType: 'json'
}).done(function(data) {
// data is the content of fixtures/tasks.json
// instead of making a request to tasks
});
// Dynamic fixture
can.fixture("/foobar.json", function(original, response){
response(200, "success", { json: {foo: "bar" } }, {})
});
两者结合在一起的时候是使用Models。模型基本上只是观察从REST后端获取数据。 More on Models and fixtures