我从REST获取嵌套的JSON数据。现在我想在变量中捕获该值。一切正常,但我不知道应该如何初始化该变量。
所以这是我的Model的初始化方法。
include_once "DataBase/db.php";
if($internet->num_rows != 0){
while($rows = $internet->fetch_assoc()){
$nom = $rows["nom"];
$id = $rows["id"];
$tech = $rows["technologie"];
$telechargement = $rows["telechargement"];
$televersement = $rows["televersement"];
$utilisation = $rows["utilisation"];
$prix= $rows["prix"];
echo '
<form method="POST" action="Fournisseurs/Videotron.php" id="'.$id.'">
<div class="boxes">
<div class="[ price-option price-option--high ]">
<div class="price-option__detail">
<span class="price-option__cost">'.$nom.'<br>$'.$prix.'</span>
</div>
<input type="hidden" name="id" value="'.$id.'"></input>
<input type="hidden" name="nom" value="'.$nom.'"></input>
<input type="hidden" name="tech" value="'.$tech.'"></input>
<input type="hidden" name="telechargement" value="'.$telechargement.'"></input>
<input type="hidden" name="televersement" value="'.$televersement.'"></input>
<input type="hidden" name="utilisation" value="'.$utilisation.'"></input>
<input type="hidden" name="prix" value="'.$prix.'"></input>
<div class="price-option__purchase">
<a href="javascript:document.getElementById('.$id.').submit();"> Submit </a>
</div>
</div>
</div>
';
}
}
AJAX CALL:
initialize: function() {
var self = this;
if (!this.get('dropdownData')) {
this.set({
dropdownData: []
});
}
}
}
现在fetchDropdown: function(data) {
var self = this;
var d = $.Deferred();
var dropdownRequest = $.ajax({
type: "POST",
contentType: "application/json; charset=utf-8",
dataType: "json",
url: this.urlRoot,
data: JSON.stringify(data)
});
dropdownRequest.done(function(data)
{
self.set({
dropdownData: data
});
console.log("JSON SUCCESS!! YAY!!");
d.resolve();
});
应初始化为dropdownData
,否则我根本不需要初始化它。
P.S:逻辑明智的代码片段正在运行。我只是想知道在dropdownData: {} or dropdownData: []
dropdownData
函数初始化initialize
的正确方法是什么
答案 0 :(得分:1)
我建议完全避免在dropdownData
方法中初始化initialize
,而是在此处使用model.defaults。如果将以下内容添加到模型定义中:
defaults: function () {
return {
dropdownData: []
};
},
...然后您可以删除initialize
方法正文中的所有代码。此更改的结果将是实例化模型将具有dropdownData
或的提供值(在实例化时),模型将默认为指定的空数组。
请注意,在此处使用defaults
的功能版本非常重要。如果你这样做:
defaults: {
dropdownData: []
},
...然后,未提供dropdownData
值的任何实例化模型将共享dropdownData
的值。每个实例都会引用完全相同的数组。