相关疑难解决方法(0)

knockout.js:在Internet Explorer 8中使用<select>上的无容器foreach失败

在RP尼迈耶的文章Knockout.js性能缺陷#3 -所有绑定火一起,一种方法来建立一个下拉列表提供:

<select data-bind="value: selectedOption">
    <!-- ko foreach: options -->
    <option data-bind="attr: { value: id }, text: name"></option>
    <!-- /ko -->
</select>
Run Code Online (Sandbox Code Playgroud)

这段代码也在文章的jsfiddle中.

http://jsfiddle.net/rniemeyer/QjVNX/

但是,当我使用这种在项目中构建选择的方法时,它工作正常,直到我在Internet Explorer 8中测试.IE8失败并且"无法解析绑定".

实际上,从IE8中的文章中运行小提琴也会导致错误.有没有办法使用knockout的foreach在IE8(我假设IE8或更少)中构建选择?

internet-explorer-8 knockout.js

8
推荐指数
1
解决办法
7284
查看次数

敲除模板绑定

我有一个ul元素,通过模板绑定填充.

<script type="text/html" id="someTemplate">
<li>
   <span data-bind="text: someText">
</li>
</script>

<ul data-bind="template: {foreach: someElemets, name: 'someTemplate'}">
</ul>
Run Code Online (Sandbox Code Playgroud)

但我希望第一个 li-tag不是来自模板的li-tag而是另一个带有按钮的li-tag,它不会连接到someElemets数组.如果我这样做的话

<ul data-bind="template: {foreach: someElemets, name: 'someTemplate'}">
    <li><button data-bind=click: doSomething">Click me</button></li>
</ul>
Run Code Online (Sandbox Code Playgroud)

然后li-tag with button将是渲染后的最后一个.解决这个问题的最佳方法是什么?

knockout.js knockout-templating

5
推荐指数
2
解决办法
1万
查看次数

使用knockout来确定foreach中的第一个元素

在淘汰模板绑定过程中,我需要检测我何时处理每一行中的第一个元素,因为它不应该有围绕它的锚标记.

给出以下js淘汰赛......

function Model() {
    var self = this;
    self.gridData = ko.observableArray('{"GridData":[["Category foo","0","0"],["Category bar","0","0"]]}');
}

var model = new Model();
ko.applyBindings(model);
Run Code Online (Sandbox Code Playgroud)

这个模板......

<script type="text/html" id="template">
    <table>
        <tbody data-bind="foreach: gridData">
            <tr data-bind="foreach: $data">
                <td><a href="" data-bind="text: $data"></a></td>
            </tr>
        </tbody>
    </table>
</script>
Run Code Online (Sandbox Code Playgroud)

这个HTML ...

<div data-bind="template: { name: 'template' }"></div>
Run Code Online (Sandbox Code Playgroud)

如果我们正在处理第一个元素,那么'if'绑定是否可以以某种方式使用?

此外,我发现了这个SO帖子,但它并没有让我得到我想要的东西.

更新:

谢谢你的回答.使用每个提供的信息,我能够为我的情况找到一个很好的解决方案.我将模板更新到下面......

<script type="text/html" id="template">
        <tbody data-bind="foreach: gridData">
            <tr data-bind="foreach: $data">
                <!-- ko if:($index()===0) -->
                <td data-bind="text: $data"></td>
                <!-- /ko -->
                <!-- ko ifnot:($index()===0) -->
                <td><a href="" data-bind="text: …
Run Code Online (Sandbox Code Playgroud)

knockout.js

2
推荐指数
1
解决办法
3545
查看次数