0

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

据我了解 can.observe 只是监听一个函数并持续观察它,它需要两个参数。至于夹具,我真的很迷茫,因为我不断听到关于偷窃的消息。

4

1 回答 1

1

它们完全不同:

观察

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 后端获取数据的观察。更多关于模型和固定装置的信息。

于 2013-07-25T18:28:43.777 回答