Javascript 不更新用户界面
我面临的一个问题是,用户界面只有在刷新页面后才使用正确的数据进行更新。我是从这里来的 我的JS代码:Javascript 不更新用户界面,javascript,jquery,knockout.js,Javascript,Jquery,Knockout.js,我面临的一个问题是,用户界面只有在刷新页面后才使用正确的数据进行更新。我是从这里来的 我的JS代码: define( ['knockout'], function (ko) { "use strict"; return { onLoad: function (widget) { widget.getDetails= function (prod) { v
define(
['knockout'],
function (ko) {
"use strict";
return {
onLoad: function (widget) {
widget.getDetails= function (prod) {
var abc = prod.DetailsNumbers();
console.log(abc);
var someArray= [];
someArray= abc.split(',');
//console.log(someArray);
widget.anotherObservableArray = ko.observableArray();
for (var i = 0; i < someArray.length; i++) {
var temp = {
"prodName": ko.observable(someArray[i])
};
var myKoObservableArray = widget.anotherObservableArray;
myKoObservableArray.push(temp);
}
console.log(myKoObservableArray());
this.myKoObservableArray = myKoObservableArray;
};
}
}
}
);
定义(
[“击倒”],
职能(ko){
“严格使用”;
返回{
onLoad:函数(小部件){
widget.getDetails=函数(prod){
var abc=prod.DetailsNumbers();
控制台日志(abc);
var someArray=[];
someArray=abc.split(',');
//log(someArray);
widget.anotherobservearray=ko.observearray();
for(var i=0;i
我的HTML:
<div id="someId">
<table>
<tbody>
<tr>
<td>Button Here</td>
<td><button data-bind="click: getDetails(product())">Click me</button></td>
</tr>// this here is working fine
</tbody>
</table>
<ul data-bind="foreach: myKoObservableArray">
<li>
<span data-bind="text: prodName"> </span> //this changes only after a refresh
</li>
</ul>
</div>
按钮在这里
点击我
//这个很好用
-
//这仅在刷新后更改
data bind=“text:prodName”
仅在刷新页面后更改值。在onLoad中创建一次数组,然后仅更新它。不要每次都继续创造它
define(
['knockout'],
function (ko) {
"use strict";
return {
onLoad: function (widget) {
widget.myKoObservableArray = ko.observableArray();
widget.getDetails= function (prod) {
var abc = prod.DetailsNumbers();
console.log(abc);
var someArray= [];
someArray= abc.split(',');
//console.log(someArray);
// empty the array
widget.myKoObservableArray([]);
for (var i = 0; i < someArray.length; i++) {
var temp = {
"prodName": ko.observable(someArray[i])
};
widget.myKoObservableArray.push(temp);
}
console.log(widget.myKoObservableArray());
};
}
}
}
);
定义(
[“击倒”],
职能(ko){
“严格使用”;
返回{
onLoad:函数(小部件){
widget.myKoObservableArray=ko.observableArray();
widget.getDetails=函数(prod){
var abc=prod.DetailsNumbers();
控制台日志(abc);
var someArray=[];
someArray=abc.split(',');
//log(someArray);
//清空数组
myKoObservableArray([]);
for(var i=0;i
这似乎不起作用。另外,我现在得到了重复的数组值。是的,我忘记了实际清空数组,而不是只是注释它需要清空。:)至于为什么它仍然不起作用:我不确定您正在使用什么以及何时调用onLoad
。也许html在此之前已经绑定过,因此您的myKoObservableArray
还不存在。请您为它创建一个提琴。其次,除了问题本身需要代码之外。请参阅以获取指导。