所以我正在使用CSS属性/ div的JSON对象,例如:
"#myDiv": {
"position": "absolute",
"max-height": "225px"
},
我使用KnockoutJS的样式绑定将此对象绑定到div:
<!-- ko with: $root.Styles['#myDiv'] -->
<div data-bind="style:{
position: position,
maxHeight: $data['max-height']
}"></div>
<!-- /ko -->
位置绑定正常,并且不必显式访问的任何其他属性也可以。是否可以在KnockoutJS样式绑定中绑定类似 $ data [&#39; max-height&#39;] 的内容?
*我还要注意,我可以成功将 $ data [&#39; max-height&#39;] 绑定到文本字段,但它始终会失败绑定样式时出现语法错误。
思考? :)
更新
对于仍然遇到此问题的人,我默认使用VS 2015并包含浏览器链接。禁用此功能会删除所有语法错误。将其添加到您的web.config:
<appSettings>
<add key="vs:EnableBrowserLink" value="false" />
</appSettings>
再次感谢@Jeroen指出错误不是由KO造成的。
答案 0 :(得分:0)
您发布的代码应该可以正常使用以下样式:
ko.applyBindings({
Styles: {
"#myDiv": {
"position": "absolute",
"max-height": "225px"
}
}
});
&#13;
div {
background-color: pink; /* to demo "max-height" is working... */
font-size: 80px; /* to demo "max-height" is working... */
top: 50px; /* to demo "position" is working... */
left: 50px; /* to demo "position" is working... */
}
&#13;
<script src="https://cdnjs.cloudflare.com/ajax/libs/knockout/3.4.0/knockout-min.js"></script>
<!-- ko with: $root.Styles['#myDiv'] -->
<div data-bind="style:{
position: position,
maxHeight: $data['max-height']
}">X
<br>X
<br>X
<br>X
<br>
</div>
<!-- /ko -->
&#13;
从css的top
和left
被选中的事实可以看出,这个职位正在发挥作用。
从粉红色的背景中可以看到max-height
被拾取,但高度不超过225像素。