我正在使用揭密模块模式来获取我的javascript,并且我正在使用最佳时间让css绑定与knockout一起正常工作。
我的JS
my.js.module = (function ($) {
"use strict";
var my = {
testUrl: null
},
testModel= {
stuff: [{
"testOne": null
}]
},
testViewModel = null,
testId: null;
my.bindStuff = function () {
testViewModel = ko.mapping.fromJS(testModel);
ko.applyBindings(testViewModel, $(my.testId).get(0));
$.getJSON(my.testUrl,
{},
function (data) {
var testModelData = {
stuff: data
};
ko.mapping.fromJS(testModelData, testViewModel);
});
};
return my;
}(jQuery));
在我的cshtml中我有
<tbody data-bind="foreach: stuff">
<tr>
<td data-bind="text: testOne"></td>
</tr>
</tbody>
现在我想通过knock out使用css绑定来获得基于testOne值的css值,它可以是三件事之一。我知道它将是一个ko,计算函数,但我无法弄清楚如何获取每个特定的东西实例来查看testOne并获得正确的值来确定通过ko.computed函数返回的内容。
如果有人可以帮助我,我将非常感激。
答案 0 :(得分:1)
这个小提示演示如何使用数组映射并通过knockout设置元素的类,它与您的代码不完全匹配,但应该有所帮助: http://jsfiddle.net/davidoleary/UHaVV/
var newData = {
test:"this is a test",
stuff:[
{"testOne":"Event1"},
{"testOne":"Event2"},
{"testOne":"Event3"}
]
};
var viewModel = ko.mapping.fromJS( newData );
ko.applyBindings(viewModel);
<div data-bind="text:test"></div>
<ul data-bind="foreach: stuff">
<li><span data-bind="text: testOne, attr:{class: testOne}"></span></li>
</ul>
另请查看此问题,了解设置类的两种方法:
Knockout binding css class to an observed model property
你可以使用attr或新的css绑定在上面的问题中都被引用。