Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/419.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 在Knockout中添加一个id_Javascript_Mvvm_View_Knockout.js_Model - Fatal编程技术网

Javascript 在Knockout中添加一个id

Javascript 在Knockout中添加一个id,javascript,mvvm,view,knockout.js,model,Javascript,Mvvm,View,Knockout.js,Model,我有一个耳环 self.workouts = ko.observableArray([ {name: "Chest/Biceps", exercises:self.exercises1}, {name: "Back/Triceps", exercises:self.exercises2}, {name: "Legs/Shoulders", exercises:self.exercises3}, ]); 练习1如下所示: self.exercises1 = ko.

我有一个耳环

self.workouts = ko.observableArray([
    {name: "Chest/Biceps", exercises:self.exercises1},
    {name: "Back/Triceps", exercises:self.exercises2},
    {name: "Legs/Shoulders", exercises:self.exercises3},
    ]);
练习1
如下所示:

self.exercises1 = ko.observableArray([
    {name: "bench press", sets:self.sets},
    {name: "machine chest press", sets:self.sets1},
    {name: "standing biceps curl", sets:self.sets2},
    {name: "machine biceps curl", sets:self.sets3}
]);
<div class="content">
    <ul data-bind="foreach: workouts">
        <li class="name"><a class="name" data-bind="text:name"></a>
            <ul class="hhide" data-bind="foreach: exercises">
                <li class="name_ex"><a data-bind="text:name"></a>
                <div class="hhide">
                    <input id ="weight" type="text" placeholder="weight(kg)">
                    <span id="append">x</span>
                    <input id ="reps" type="text" placeholder="reps">
                    <button id="sets" data-bind="click: $root.addSet">Add set</button>
                    <div data-bind="foreach: sets">
                        <div id="sets" class="remove" data-bind="click: $root.removeSet">delete</div>
                        <div data-bind="visible: !editing(), text: name, click: edit"></div>
                        <input data-bind="visible: editing, value: name, hasFocus: editing" />
                    </div>
                    </div>
                </li>
            </ul>       
    </ul>
</div>
我想要的是在
exercises1
中为每个对象添加一个唯一的
id
,然后在我的视图中绑定它。我曾尝试使用attr绑定,但没有成功

我的观点是这样的:

self.exercises1 = ko.observableArray([
    {name: "bench press", sets:self.sets},
    {name: "machine chest press", sets:self.sets1},
    {name: "standing biceps curl", sets:self.sets2},
    {name: "machine biceps curl", sets:self.sets3}
]);
<div class="content">
    <ul data-bind="foreach: workouts">
        <li class="name"><a class="name" data-bind="text:name"></a>
            <ul class="hhide" data-bind="foreach: exercises">
                <li class="name_ex"><a data-bind="text:name"></a>
                <div class="hhide">
                    <input id ="weight" type="text" placeholder="weight(kg)">
                    <span id="append">x</span>
                    <input id ="reps" type="text" placeholder="reps">
                    <button id="sets" data-bind="click: $root.addSet">Add set</button>
                    <div data-bind="foreach: sets">
                        <div id="sets" class="remove" data-bind="click: $root.removeSet">delete</div>
                        <div data-bind="visible: !editing(), text: name, click: edit"></div>
                        <input data-bind="visible: editing, value: name, hasFocus: editing" />
                    </div>
                    </div>
                </li>
            </ul>       
    </ul>
</div>

    • x 添加集 删除

谢谢

这就是你要找的吗?(小提琴:)

html:


是的,但是在每次练习中使用随机Id不是很好。我希望能够设置特定的id。例如:
{name:“台式压力机”,id:“ex1”},{name:“机器胸部压力机”,“ex2”}
等等。使用id计数器更新。类似这样的事情?好吧,这似乎是一个解决方案,但难道不可能像我对每个
名称所做的那样添加Id吗?就像在每个练习中给自己写一个Id,而不是从函数生成它一样?谢谢你的回复。在您的示例中它是有效的,在我的代码中它不是。可能是因为我这样使用它:{name:“benchpress”,uniqueId:“1”,sets:self.sets}。它应该可以工作,你在控制台中有错误吗?如果删除self.set怎么办?