gpt4 book ai didi

javascript - Backbone.js 使用 url 中的数据设置模型

转载 作者:行者123 更新时间:2023-12-03 12:37:02 26 4
gpt4 key购买 nike

我从以下网址获取数据:/app/api/assetDetail/{id},其中 id 是传递给演示者的参数,演示者设置新的 assetModel 和 assetView。

我正在努力寻找在哪里构建并使用 id 调用上面的 url,然后设置模型。

Assets 展示

define([
'text!html/regions/tplAssetPage.html',
'views/assetView',
'collections/assets',
'models/asset'
],
function (template, AssetView, Assets, Asset) {
return {
load: function (params) {

$(mv.sections.mainContainer).html(template);

var view1 = 'assetView',
id = params || '';

this.model = new Asset({
wid: params, //sets id on model
url: function(){
var url = 'api/assetDetail/' + params;
return url;
}
});
mv.i.views[view1] = new AssetView({
'el': '#asset-container',
model: asset
});
mv.i.views[view1].setup();
},
};
});

Assets 模型

define([], function () {
return Backbone.Model.extend({

defaults: {
id:''
},

initialize: function () {}

});

});

Assets View

define([
'text!html/tplAsset.html',
'models/asset'
], function (template, Asset) {

return Backbone.View.extend({

el: '',

template: _.template(template),

initialize: function () {},

render: function () {
//var data = this.model.toJSON();
this.$el.html(this.template(data));
},

setup: function () {
var self = this;
$.when(self.model.fetch())
.done(function () {
//console.log(self.model.toJSON());
self.render();
})
.fail(function () {
console.log('request for data has failed');
});

},

events: {},
});
});

现在出现这些错误: 错误:路由错误错误:必须指定“url”属性或函数

at Backbone.View.extend.setup (/js/views/assetView.js:36:22)
$.when(self.model.fetch())
at Object.load (/js/presenters/asset.js:34:23)
mv.i.views[view1].setup();

最佳答案

要在模型实例中动态设置模型 URL:

 var asset = new Asset({                 
wid: params, //sets id on model


url: function(){
var url = '/app/api/assetDetail/' + this.id;
return url;
}
});

然后,设置网址后,执行 asset.fetch()

请注意,这现在将是与该模型实例的服务器( savefetch )进行任何通信的 URL。如果您需要更大的灵 active ,则需要调整 Bacbkone sync适合您模型的方法。

更新:

获取模型所需的数据后,您就可以调用渲染函数:

render: function () {
this.$el.html( this.template(this.model.toJSON() ) );
return this;
}

这将在您的模板中呈现模型数据。如果您使用下划线模板,它将如下所示: <p>some html<span> <%= data %> </span><p>

如果您想检查已获取的内容,请不要忘记 fetch接受成功和错误回调:http://backbonejs.org/#Model-fetch

关于javascript - Backbone.js 使用 url 中的数据设置模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23691455/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com