gpt4 book ai didi

javascript - 在 Ember 中渲染到导出时获取正确的数据模型

转载 作者:行者123 更新时间:2023-11-30 00:29:56 25 4
gpt4 key购买 nike

我正在尝试在一个模式中创建一个选择框,其中包含库存中所有汽车的列表。如果我从加载了所有数据的页面进入应用程序并打开模式,它会正常工作。但是,如果我在没有加载数据的路线上,则打开模式选择选项不显示。此外,选项永远不会从那时起更新。如何获取要加载的正确数据?由于我是直接从商店获取数据,所以这不可行吗?

Dms.SellDialogController = Ember.ArrayController.extend({
cars: function() {
return this.store.find('car').filterProperty('isSold', false);
}.property('model'),
selectedCar: '',
carObjects: function() {
var cars = this.get('cars').map(function(car) {
return obj = {id: car.get('id'), key: car.get('keyNumber'), label: 'KEY#:'+car.get('keyNumber') + ' - STOCK#:' + car.get('stock')+' '+car.get('year')+' '+car.get('vModel')};
});
cars.sort(function(a, b){return a.key-b.key;})
return cars;
}.property('route'),
title: 'Select the car you are selling'
});

应用程序路由......

openModal: function(modalName, model) {
this.render(modalName, {
into: 'application',
outlet: 'modal',
model: model
});
},

在应用程序模板中打开模式的操作

{{action 'openModal' 'sellDialog' model}}

和模板

<script type="text/x-handlebars" id="components/modal-dialog">
<div class='modal-overlay' {{action "closeModal" target=cntrllr}}>
<div class='modal' {{action "dngn" target=cntrllr bubbles=false}}>
<div class='modal-content'>
<div class='modal-header'>
<button type="button" class="close" aria-label="Close" {{action "closeModal" target=cntrllr}}><span aria-hidden="true">&times;</span></button>
<h4 class="modal-title">{{title}}</h4>
</div>
{{yield}}
</div>
</div>
</div>
</script>
<script type="text/x-handlebars" data-template-name="sellDialog">
{{#modal-dialog title=title cntrllr=controller model=model}}
<div class="modal-body">
<span class='pull-left'>Key Number:
{{view "select" content=carObjects optionValuePath="content.id" optionLabelPath="content.label" selection=selectedCar}}
</span>
</div>
<div class="modal-footer">
<button {{action "modalAction" controller "sell" selectedCar.id}}>Sell</button>
<button {{action "closeModal"}}>Cancel</button>
</div>
{{/modal-dialog}}
</script>

更新 2015/5/4:我有一个黑客让它现在工作。我在应用程序路由中添加了一个汽车属性,我在 SellDialogController 中获取它。这对我来说就像一个错误。我会在有空的时候制作一个 jsFiddle,并在发布错误报告之前进一步检查它。

最佳答案

尝试在应用程序路由上使用 setupController,因为 setupController 总是被调用。

import Ember from 'ember';

export default Ember.Route.extend({
model: Ember.RSVP.hash({
optionsForSelect: function() {
// fetch your select data here
},
otherData: function() {
// get your regular model data here
}
}),
setupController: function(controller, model) {
this.controllerFor('sellDialog').set('model', model.optionsForSelect);
this.controller.set('model', model.otherData);
}
});

关于javascript - 在 Ember 中渲染到导出时获取正确的数据模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29971131/

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