以下是从 knockoutjs 网站教程中获取的示例。我的问题有点复杂,我想为我们的 Web 应用程序创建可重用的向导、控件或组件。
以下场景代表了我面临的一个非常常见的问题,即模板绑定与视图模型属性不同。如果我们查看人员模板是由“名称”属性绑定的,该属性将来自具有“名称”属性的视图模式。现在想象一下我有两个视图模型非常相似但有一些属性名称不同的情况。(如买方和卖方的属性名称为“BuyerName”、“SellerName”,有什么方法可以创建模板,所以我可以绑定到动态属性。
我的意思是在这个例子中将与买方和卖方一起工作。欢迎任何建议或任何想法。
我的问题比这更复杂,我很困惑。
谢谢。
<h2>Participants</h2>
Here are the participants:
<div data-bind="template: { name: 'person-template', data: buyer }"></div>
<div data-bind="template: { name: 'person-template', data: seller }"></div>
<script type="text/html" id="person-template">
// Now name property is bind, where as view model has two
// properties named BuyerName and SellerName, so it is not going to work.
<h3 data-bind="text: name"></h3>
<p>Credits: <span data-bind="text: credits"></span></p>
</script>
<script type="text/javascript">
function MyViewModel() {
this.buyer = { BuyerName: 'Franklin', credits: 250 };
this.seller = { SellerName: 'Mario', credits: 5800 };
}
ko.applyBindings(new MyViewModel());
</script>