一般来说,我是新的canJs。我很难理解 can.fixture 和 can.observe 之间的区别以及它们是如何使用的?
据我了解 can.observe 只是监听一个函数并持续观察它,它需要两个参数。至于夹具,我真的很迷茫,因为我不断听到关于偷窃的消息。
一般来说,我是新的canJs。我很难理解 can.fixture 和 can.observe 之间的区别以及它们是如何使用的?
据我了解 can.observe 只是监听一个函数并持续观察它,它需要两个参数。至于夹具,我真的很迷茫,因为我不断听到关于偷窃的消息。
它们完全不同:
Observes 是可观察的对象,只要值发生变化,您就可以在其中接收事件:
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 渲染视图时,每当您自动更新 Observe 时,您的 HTML 都会更改)。在文档中阅读有关它的更多信息。
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 后端获取数据的观察。更多关于模型和固定装置的信息。