标签: wakanda

了解如何在Extjs 4.2 MVC模式中引用/ loade /实例化存储模型

使用Extjs 4.2

我已经阅读了许多文档,谷歌,论坛试图了解组件如何加载以及放置它们的位置,如商店,模型等,但仍然困惑.

这是我试图开始工作的一个例子

应用说明

主菜单包含联系人,项目,人员等等,应用程序首先加载显示静态非数据驱动,然后使用点击联系人显示带有联系人列表的网格.然后,用户单击联系人行,并显示弹出编辑视图.

在contactitview中,联系人被加载到表单中,此外表单还有一个加载ContactTypes商店的组合框.ContactType应设置为该联系人记录的contacttype值.

这是一个常见的方法,考虑到这是一个大型应用程序,我只想在需要时加载数据,即显示视图.

以下是我的一些困惑

  1. 您可以在应用程序配置中定义所有控制器,商店,模型,视图,但无论您正在查看哪个页面,都会加载所有内容.此外,如果您的商店中有autoLoad:true,那么即使您没有查看该特定视图,也会对数据库进行所有商店的调用.

  2. 在控制器的stores或models属性中指定商店或模型时,具体到底是做什么的?它只是让你轻松引用商店而不是实际创建它或创建它,还是只是设置getter和setter函数以方便使用.例如,如果我在控制器的store属性中指定了一个商店,并且autoLoad为true,则加载所有数据而不需要执行任何其他操作.但我真正想要的是,只有当我点击"联系人"并且显示列表视图时才会加载该商店.所以我设置autoLoad:false并在我的列表函数中手动获取商店使用this.getStore('Contacts').这很好用,但是使用store和models控件的数组属性的目的是什么.我在调试器中看到,如果我不使用存储/模型属性,则会对这些js文件进行get请求.

    对不起,我知道这很多,但对我来说很困惑,并且已经挣扎了一段时间.

  3. 最后,只有当您通过设置autoLoad:false并手动加载来单击"联系人"按钮时,才会加载"联系人"网格.现在,当用户单击编辑时,记录加载正常,但如何加载组合框然后选择正确的值.我认为我的部分问题是了解商店模型如何加载和实例化.在我的组合框存储属性中,我已将ContactType指定为存储,但我得到错误存储未定义,因此未加载js文件或未实例化存储.


到目前为止,这是我的代码.

应用代码

Ext.Loader.setConfig({
    enabled: true,
    paths: {
        'Ext.ux': "lib/extux",
        'Wakanda': "lib/extux/wakanda"
    }
});
Ext.application({
    name: 'SimplyFundraising',
    autoCreateViewport: true,

    requires: ['Ext.ux.Router', // Require the UX
        'Wakanda.model'
    ],

    controllers: ['Contacts'],
});
Run Code Online (Sandbox Code Playgroud)

联系控制器

Ext.define('SimplyFundraising.controller.Contacts', {
    extend: 'Ext.app.Controller',


    views: ['contacts.List', 'contacts.Edit'],
    init: function() {
        this.control({
            'contactslist': {
                itemdblclick: this.editContact,
                removeitem: this.removeContact
            },
            'contactslist > toolbar > button[action=create]': {
                click: this.onCreateContact
            },
            // 'contactsadd button[action=save]': {
            // click: this.doCreateContact
            // …
Run Code Online (Sandbox Code Playgroud)

extjs extjs-mvc wakanda extjs4.2

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

Breeze兼容JavaScript GUI框架

虽然我已经发布了一个类似的问题(Breeze兼容SPA建设)并且可能在IdeaBlade和Telerik之间开始了一些好的事情,但我相信Breeze因其在服务器端访问Entity Framework的独特方法而值得更广泛的认可.因此,对我而言,即使是臭名昭着的完整JS框架(如SenchaWakanda)也 需要确保与Breeze合作.

Remo Blok在http://www.kendoui.c​​om/blogs/teamblog/posts/13-02-21/breeze_js_and_the_kendo_ui_datasource.aspx的帖子中非常清楚地描述了KendoUI和Breeze之间的当前问题.简而言之,与Breeze的集成应该在实体级别进行 - 而不是JSON数据,这几乎每个人都处理JS客户端和SQL服务器之间的事务.

Wakanda是一个非常丰富的开发环境的典范,其中包含精心设计的GUI Builder,Debugger等,遗憾的是它不能与服务器端的"遗留数据"一起使用.

据我所知,Breeze在Angular上工作得很好,但是Angular需要AngularUI(http://angular-ui.github.io/),而这反过来又不像我想的那样完整,并且有一些JQuery依赖这可能会导致碰撞.很快,Breeze将与KendoUI(AFAIK)合作 - 是否有人知道其他一些JavaScript框架集合,这些集合将提供Visual Studio为Windows桌面应用程序创建提供的轻松程度?(毕竟,JavaScript应用程序是桌面应用程序,分配问题以非常优雅的方式解决).

entity-framework extjs wakanda angularjs breeze

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

Wakanda Server脚本清理关闭

通过OS X shell脚本执行Wakanda服务器的干净关闭的最佳做法是什么?

这将是当前加载和运行的解决方案.

bash shutdown wakanda server

5
推荐指数
3
解决办法
383
查看次数

Calling a service in a service and returning async result?

Using Angular 5. A component calls a service. This service must call another service before making a server call. I am not able to get the result asynchronously in the component. I use ellipses for brevity below.

Component:

...
import { SystemOnlineService } from '../services/system-online.service';
...
constructor(private sys: SystemOnlineService) {
    sys.getStatus()
    .then(result => {
        console.log(result);
    });
}
Run Code Online (Sandbox Code Playgroud)

SystemOnlineService:

import { Injectable } from '@angular/core';
import { Wakanda } from './wakanda.service';
import 'rxjs/add/operator/toPromise';
...
getStatus() {

    this.wakanda.getCatalog()
    .then((ds) => {
        this.ds …
Run Code Online (Sandbox Code Playgroud)

wakanda angular

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