can.fixture和can.observe之间有什么区别?它们可以在哪里使用?

时间:2013-07-25 17:27:39

标签: canjs

我是一般的新人。我很难理解can.fixture和can.observe之间的区别以及它们是如何被使用的?

据我所知can.observe只是听一个函数并一直看着它,它需要两个参数。至于夹具,我真的输了,因为我一直听到偷窃。

1 个答案:

答案 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