gpt4 book ai didi

javascript - Emberjs - 我需要一个可以更改变量值的操作

转载 作者:行者123 更新时间:2023-12-03 12:38:07 24 4
gpt4 key购买 nike

我有一个名为 docTemplateID 的变量/操作。docTemplateID 的值可以是 1 或 2单击按钮 1 设置 docTemplateID = 1。单击“提交”按钮将使用新值创建 docTemplateID 的实例

<form {{action "addDoc" on="submit"}} id="addDoc" name="addDoc">
<div>
<button value="1"> 1 </button> //sets docTemplateID to 1
<button value="2"> 2 </button> //sets docTemplateID to 2
</div>
<button type="submit" class="submit"> Add</button> //Submits docTemplateID after it is chosen.
</form>

该按钮提交所选的任何按钮。

VpcYeoman.Doc = DS.Model.extend({
docTemplateID: DS.attr('number'), //this is what can be set to a value of 1 or 2
});

“addDoc”操作定义如下。

VpcYeoman.DocsController = Ember.ArrayController.extend({  
actions: {
addDoc: function (params) {
var docTemplateID = this.get('docTemplateID');
var store = this.store;
var current_object = this;
var doc = current_object.store.createRecord('doc', {
docTemplateID:docTemplateID
});
doc.save();
return true;
},

}
});

以及文档路线

VpcYeoman.DocsRoute = Ember.Route.extend(VpcYeoman.Authenticated,{
model: function() {
return this.store.find('doc');
}
});

最佳答案

除非您的 route 有一些我看不到的内容,否则问题似乎在于,一方面,您没有在单击按钮时对设置 docId 的按钮调用任何操作。问题#2 是您的 Controller 还没有名为docTemplateId 的属性。为了使 Controller 具有模型的属性,您需要向其传递该模型的实例。如果您将 createRecord 作为 DocRoute 中的模型传递,则该值将是可修改的。

这是我用来使您的示例工作的代码,至少在保存记录之前是这样,因为我没有您的后端。

jsbin 位于 here

App = Ember.Application.create();

App.ApplicationAdatper = DS.FixtureAdapter.extend({});

App.Router.map(function() {
// put your routes here
});

App.IndexRoute = Ember.Route.extend({

});

App.IndexController = Ember.ArrayController.extend({
tempDocId: null,
actions: {
addDoc: function (params) {
console.log(this.get('tempDocId'));
var docTemplateID = this.get('tempDocId');
var store = this.store;
var current_object = this;
var doc = current_object.store.createRecord('doc', {
docTemplateID:docTemplateID
});
doc.save();
return true;
},
setDocId: function (param) {
this.set('tempDocId', param);
console.log(this.get('tempDocId'))
}
}
});

App.Doc = DS.Model.extend({
docTemplateID: DS.attr('number')
});

模板:

<script type="text/x-handlebars" data-template-name="index">
<form {{action "addDoc" on="submit"}} id="addDoc" name="addDoc">
<div>
<button value="1" {{action 'setDocId' 1}}> 1 </button>
<button value="2" {{action 'setDocId' 2}}> 2 </button>
</div>
<button type="submit" class="submit"> Add</button>
</form>
</script>

希望这会有所帮助!

关于javascript - Emberjs - 我需要一个可以更改变量值的操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23639005/

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