标签: durandal

Durandal KO Binding View Issue

我有Durandal viewmodel工作方式如下:

define(function (require) {
var http = require('durandal/http');

return {
    subjectItem: function (data) {
        var self = this;
        self.Subject_ID = data.Subject_ID;
        self.Subject_Name = data.Subject_Name;
    },
    subjects: ko.observableArray([]),
    activate: function () {
        var self = this;
        http.ajaxRequest("get", "/api/values/getsubjects")
            .done(function (allData) {
                var mappedSubjects = $.map(allData, function (list) { return new self.subjectItem(list); });
                self.subjects(mappedSubjects);
            });
    }
};
});
Run Code Online (Sandbox Code Playgroud)

但是,在首次导航到此视图时,它会运行ajax调用但不会更改dom,再次导航到它并且它们都会出现(仍然运行ajax调用).这是我的HTML:

<table>
<thead>
    <tr>
        <th>Name</th>
    </tr>
</thead>
<tbody data-bind="foreach: subjects">
    <tr>
        <td data-bind="text: Subject_Name"></td>
    </tr>
</tbody>
</table>
Run Code Online (Sandbox Code Playgroud)

任何线索,我对使用Durandal很新,但现在担心它不会有效地保持dom更新.

asp.net-mvc durandal

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

BreezeJS应该使用Durandal在单页应用程序中的页面之间共享实体管理器吗?

使用Durandal为单页应用程序创建BreezeJS EntityManager实例的最佳实践是什么?

是否应该在所有页面之间共享一个实体管理器实例,或者每个页面应该有一个实例?

有关实施的任何细节都表示赞赏.

single-page-application breeze durandal

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

在构成主要内容后,Durandal不会构成页脚视图

我有这样的durandal shell视图:

<div id="global">
<!-- ko compose: {view: 'nav'} -->
<!-- /ko-->
<div id="main" class="container">
    <!--ko compose: {model: router.activeItem, 
        afterCompose: router.afterCompose,
        transition: 'entrance'} -->
    <!-- /ko-->
</div>
<div id="push"></div>
 </div>
  <!-- ko compose: {view: 'footer'} -->
  <!-- /ko-->
Run Code Online (Sandbox Code Playgroud)

'nav'和'footer'是单独的html视图.当我运行网站时它工作正常,除了从未显示页脚html.但是,当我这样说时,页脚正在显示(虽然页面布局当然是错误的):

<div id="global">
<!-- ko compose: {view: 'nav'} -->
<!-- /ko-->
<!-- ko compose: {view: 'footer'} -->
 <!-- /ko-->
<div id="main" class="container">
    <!--ko compose: {model: router.activeItem, 
        afterCompose: router.afterCompose,
        transition: 'entrance'} -->
    <!-- /ko-->
</div>
<div id="push"></div>

 </div>
Run Code Online (Sandbox Code Playgroud)

当我将页脚的html代码直接粘贴到shell中时,它当然也能正常工作.

asp.net-mvc-3 asp.net-mvc-4 knockout.js durandal

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

knockoutjs的无容器声明在hottowel SPA中不起作用?

我试图<!--ko if:IsShowData==true -->在热毛巾模板中使用像knockoutjs 这样的无容器语句但是如果我使用像div这样的元素的可见绑定那么它就不用了,那么它工作得非常好.(<div data-bind="visible: IsShowData==true"></div>)

任何人都可以告诉我,如果无格式的knockoutjs声明在热毛巾模板中不起作用吗?

在Default Hot towel模板中,我在home.html和home.js中添加了几行,如下所示:

views/home.html

<section>
    <h2 class="page-title" data-bind="text: title"></h2>
</section>

<!-- ko if: active()==true -->
hiiiiiiiiiiiiiii
<!--/ko-->


<div data-bind="visible: active() == true">
    byeeeeeeeeeeeee
</div>
Run Code Online (Sandbox Code Playgroud)

并在viewmodels/home.js文件中

define(['services/logger'], function (logger) {
    var vm = {
        activate: activate,
        active:ko.observable(false),
        title: 'Home View'
    };

    return vm;

    //#region Internal Methods
    function activate() {
        logger.log('Home View Activated', null, 'home', true);
        return true;
    }
    //#endregion
});
Run Code Online (Sandbox Code Playgroud)

我会看到hiiiiiiii但我不会看到byeeeeee

model-view-controller knockout.js breeze durandal hottowel

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

在durandal 2.0中定义起始模块并导航到它

在我看来......这样的初始路线是通过以下方式定义的:

{ route: '', moduleId: 'viewmodels/customers', title: 'customers', nav: true },
Run Code Online (Sandbox Code Playgroud)

当应用程序加载''必须奇怪地设置为空的路由时,最初加载此路由.

当我现在导航到mysite /#/ customers时,没有任何内容被加载.

如何为我的路线提供一个起始模块,我可以用它来导航到它?

在旧路由器中我使用了startModule,但我在durandal 2.0中找不到它.

durandal

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

杜兰达尔路线的Asterix(*)

Durandal路线中Asterix的目的是什么?以下是文档中的示例:

route:'knockout-samples*details'
Run Code Online (Sandbox Code Playgroud)

编辑:使用Durandal 2.0

sammy.js single-page-application durandal durandal-navigation durandal-2.0

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

Durandal - 根据网址或路线隐藏页面部分

在我的durandal应用程序中,除主页之外的每个页面都有一个左侧导航栏.这个左侧导航栏应该在刷新时更新,但它应该驻留在shell.html上.

问题是我无法在主页上正确隐藏它.当我在主页上时,我可以使用jquery hide()方法隐藏leftnav div,但问题是我只能在data-bindind之后使用jquery代码,直到我可以看到导航栏.我试图使用durandal组合,但我不知道如何只在主页中隐藏导航栏,因为我不知道如何知道我是否在主页上或不在shell.js内.

任何想法?

javascript jquery durandal durandal-2.0

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

杜兰达尔和奥瑞莉亚是什么关系?

每次我阅读有关 Javascript 的新内容时,我都会阅读有关 Durandal 和 Aurelia 的内容。我在很多博客上听到开发人员要求从 Durandal 升级到 Aurelia 或类似的版本。虽然我确实有一个想法,但我对这两者的真正含义以及它们之间的关系感到困惑,或者它们是否有关系。

这是我的看法。Durandal 是一个轻量级的 SPA 框架,它允许您利用其他 JS 库和实用程序的优点来构建应用程序。所以它本身并不是一个完整的包(与 Angular 不同),但可以使用不同的外部 JS 库 - 例如用于绑定的 Knockout、用于 DOM 的 jQuery、用于路由的 Sammy 等。

另一方面,Aurelia 是混淆的来源。它也是 SPA 框架吗?还是仅限于作为客户端(前端)框架?更让我困惑的是,有一个Durandal 博客只讨论了 Aurelia。我从互联网上知道,Rob Eisenberg 在开始研究 Aurelia 之前曾在 Durandal 工作过。那么Aurelia是Durandal的升级版,还是完全不相关的东西?

我仍然有一些问题,但我猜到目前为止我的问题的结构只会要求自以为是的答案。所以在这个问题结束之前,任何有关的描述、链接和参考都将是惊人的。我一定会在这里更新并添加有用的链接。

durandal aurelia

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

在Durandal的组合视图中激活功能

我有这样的Shell html

<div data-bind="compose: { model: 'ui/user/viewmodels/header', view: 'infoveave/user/views/header'}"></div>
<div class="container-fluid page-host">
    <!--ko compose: {
        model: router.activeItem,
        afterCompose: router.afterCompose,
        transition:'entrance'
    }--><!--/ko-->
</div>
Run Code Online (Sandbox Code Playgroud)

和shell js一样

define(function(require) {
var router = require('durandal/plugins/router'),
    system = require('durandal/system'),
return {
    router: router,
    activate: function () {
        var self = this;
        router.mapAuto('ui/user/viewmodels');
        system.log('Sheel Activate Called');
        return router.activate('dashboard');
    }
};
});
Run Code Online (Sandbox Code Playgroud)

问题是标题上的激活函数没有被调用,但是仪表板上的那个被调用,我必须在标题中获取一些ajax内容并绑定它,我怎样才能实现这一点

我想保持这个逻辑分离,因为我不希望我的shell有这个逻辑

作为参考我的标题(为简化我已将我的复杂模型转换为一个简单的observable

define(function (require) {
var router = require('durandal/plugins/router'),
    system = require('durandal/system');

this.userInfo = ko.observable('');

return {
    router: router,
    activate: function () {
         system.log('Got Called …
Run Code Online (Sandbox Code Playgroud)

durandal

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

在Durandal中使用不同的过渡来获取某些视图

由于Durandal,我开发了SPA.在此模板中,我们可以定义从一个页面导航到另一个页面时使用的过渡.过渡样式在主模块中为所有过渡样式定义,并用于所有过渡.

我想知道是否可以对某些特定视图使用不同的转换?

任何的想法?

谢谢.

durandal hottowel

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