gpt4 book ai didi

javascript - knockout js 可见数据绑定(bind)属性不显示结果

转载 作者:行者123 更新时间:2023-11-30 13:05:14 26 4
gpt4 key购买 nike

我正在使用 knockout js - 我有一个 View 页面,我在其中以两种不同的布局显示相同的信息。我正在使用 knockout-templates 并且我在一个单独的文件中有我的 knockout 脚本,我在 View 页面中调用该文件。

问题
目前,我要么同时显示两种不同的布局( GridView 和 ListView ),要么根据我如何配置数据绑定(bind)而没有得到任何布局。我想要一个切换按钮来改变显示项目的布局——我不介意有两个按钮,一个用于网格,一个用于列表。

查看页面

<div class="btn-group">
<button type="button" class="btn" data-bind="click: toggleView" >Toggle</button>
</div>


<div data-bind="template: {name:'grid', foreach: Users, visible: grid()}"></div>
<div data-bind="template: {name:'list', foreach: Users, visible: !grid()}"></div>

<script style="float:left" type="text/html" id ="grid">
<section id="Images" style=" float:left">
<section id="users">
<div id="nameImage">
<figure id="content">
<img width="158" height="158" alt="Gravatar" data-bind="attr:{src: GravatarUrl}"/>
<figcaption>
<a title="Email" id="emailIcon" class="icon-envelope icon-white" data-bind="attr:{'href':'mailto:' + Email()}"></a>
<a title="Profile" id="profileIcon" class="icon-user icon-white"></a>
</figcaption>
</figure>
<p data-bind="text:Name"></p>
</div>
</section>
</section>
</script>


<script style="float:left" type="text/html" id="list">
<div>
<div class="border_bottom light buffer" style="width:60%; float:left; margin:10px; height:58px">
<img style="margin-right:5px; vertical-align:middle" width="58" height="58" alt="Gravatar" data-bind="attr:{src: GravatarUrl}"/>
<span style="height:58px; vertical-align:middle" data-bind="text:Name"></span>
<a style=" margin: 5px; vertical-align:middle" title="Email" class="icon-envelope icon-black" data-bind="attr:{'href':'mailto:' + Email()}"></a>
<a style=" margin: 5px; vertical-align:middle" title="Profile" class="icon-user icon-black"></a>
</div>
</div>
</script>

@section scripts{
@Scripts.Render("~/bundles/user" + ViewBag.Layout.AppVersionForUrls)

<script type="text/javascript">
(function ($) {
$.views.User.GetUser('@url');
})(jQuery);
</script>
}

Knockout js 我在一个单独的文件中,不在 View 中

$.views.User.UserViewModel = function (data) {
var self = this;
self.Name = ko.observable(data.Name);
self.Email = ko.observable(data.Email);
self.MD5Email = ko.observable(data.MD5Email);
self.GravatarUrl = ko.computed(function () {
return 'http://www.gravatar.com/avatar/' + self.MD5Email() + '?s=300&d=identicon&r=G';
});
self.grid = ko.observable(true);
self.toggleView = function () {
self.grid(!self.grid());
}
};

我真的很想得到任何帮助:)

最佳答案

我认为你的“可见”绑定(bind)应该像这样在你的模板绑定(bind)之外:

<div data-bind="template: {name:'grid', foreach: Users}, visible: grid()"></div>
<div data-bind="template: {name:'list', foreach: Users}, visible: !grid()"></div>

Here是 fiddle 。

关于javascript - knockout js 可见数据绑定(bind)属性不显示结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15929611/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com