Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 不更新用户界面_Javascript_Jquery_Knockout.js - Fatal编程技术网

Javascript 不更新用户界面

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

我面临的一个问题是,用户界面只有在刷新页面后才使用正确的数据进行更新。我是从这里来的

我的JS代码:

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
还不存在。请您为它创建一个提琴。其次,除了问题本身需要代码之外。请参阅以获取指导。