标签: breeze

upshot js vs. breeze js

upshot js正在积极发展吗?所有结果文章都是在2012年3月写的.是ups js稳定吗?微风似乎正在积极发展.

它准备好生产吗?添加了vs spa应用程序模板,稍后将其删除.什么时候重新加入?我猜它会因为结果与ms有关而重新加入.

public class TodosController : ApiController {

    readonly EFContextProvider<TodosContext> contextProvider = 
        new EFContextProvider<TodosContext>("TodosContext");

    // ~/api/todos/Metadata 
    [AcceptVerbs("GET")]
    public string Metadata() {
        return contextProvider.Metadata();
    }

    // ~/api/todos/Todos
    // ~/api/todos/Todos?$filter=IsArchived%20eq%20false&$orderby=CreatedAt 
    [AcceptVerbs("GET")]
    public IQueryable<TodoItem> Todos() {
        return contextProvider.Context.Todos;
    }

    // ~/api/todos/SaveChanges
    [AcceptVerbs("POST")]
    public SaveResult SaveChanges(JArray saveBundle) {
        return contextProvider.SaveChanges(saveBundle);
    }

    // other miscellaneous actions of no interest to us here
}
Run Code Online (Sandbox Code Playgroud)

upshot single-page-application breeze

8
推荐指数
2
解决办法
6136
查看次数

如何使Ember.js应用程序在可用时与服务器同步脱机

有没有处理这个的库?比如backbone.offline one?,如果不是,那么Ember.js难以实现吗?

UPDATE

这个问题有两个可以帮助的库,Breeze.js和Jaydata ..

html5 offline ember.js breeze

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

如何检测实体的EntityState的更改?

我想在客户列表的每一行上放置一个"删除"按钮和一个"取消"按钮.当客户"未更改"时,"取消"按钮被禁用.但是当客户转换到更改状态("已添加","已修改","已删除")时,我想启用"取消"按钮,以便用户可以在保存之前撤消更改 - 无论它们是什么.

我几乎可以通过订阅来做到这一点customer.entityAspect.propertyChanged.属性变化表示潜在的变化EntityState.我可以订阅该事件并让我的处理程序更新isChanged我已添加到我的Customer实体的observable.然后我绑定"取消"按钮启用isChanged,我很高兴.

propertyChanged事件仅在数据属性发生变化时才会发生,例如customer.Name("New Co.");.用户单击"删除"按钮时不会引发此问题."删除"触发器customer.entityAspect.setDelete();不触及数据属性; 它只是改变了顾客的意志EntityState.

(1)为什么不改变客户的EntityState加注propertyChanged和(2)我如何监听改变,EntityState以便我可以控制"取消"按钮?

PS:我正在使用Knockout.

PPS:这个问题的灵感来自之前的SO问题" entityAspect.setDeleted不会触发订阅的propertyChanged事件 ".

breeze

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

下拉填充了由Breeze(服务器端)与Breeze提供的选项

我用durandal/breeze开发了一个asp.net mvc解决方案.

我有一个下拉列表,其中列表是由实体框架代码优先提供的枚举填充的.这是模型服务器端:

public enum EnumCategory
{
    Cat1,
    Cat2,
    Cat3,
    Cat4
}
Run Code Online (Sandbox Code Playgroud)

这是使用此枚举的表:

public class Transport
{
    [Key]
    public int Id { get; set; }
    public EnumCategory Category { get; set; }
    ...
}
Run Code Online (Sandbox Code Playgroud)

我的问题:如何检索枚举服务器端的这些值,以便能够填充我的下拉客户端?我是否必须手动创建一个新的数组客户端,如下所示:

 var categories = [
    { id: '' , description: '' },
    { id: 'Cat1', description: 'Category 1' },
    { id: 'Cat2', description: 'Category 2' },
    { id: 'Cat3', description: 'Category 3' },
    { id: 'Cat4', description: 'Category 4' }];
Run Code Online (Sandbox Code Playgroud)

我的视图显示此下拉列表,如下所示:

<select data-bind="options: $root.categories,
                   optionsText: …
Run Code Online (Sandbox Code Playgroud)

knockout.js breeze durandal

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

SignalR与Breeze结合

我有一个项目,我现在已经设置了BreezeJS.不知道BreezeJS内部到底是什么,但只是接受了它的工作原理,我的屏幕上显示的项目基本上来自这个简单的命令.

export function getProjects(projectsObservable, errorObservable)
{
return breeze.EntityQuery.from("Projects")
       .using(manager).execute()...then/fail.
}
Run Code Online (Sandbox Code Playgroud)

我现在想要对使用signalR编辑相同项目的用户做出响应.这意味着我此时在javascript端触发了回调,说guid = xxxxxxx的对象已经改变(guid是关键).

如何在没有再次查询服务器的情况下点击Breeze更新项目,也不会将其视为需要发送回服务器的更新.Remmeber,我刚从信号r获得更新.

我是否应该首先采取另一条路径,是否有理由创建一个WebApi,如果我可以从一开始就从signalR集线器返回数据?用Breeze而不是WebApi来设置它是否容易?

javascript signalr breeze

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

为何选择SPA(单页应用)?

受到John Papa在Pluralsight的视频的启发,我开始学习SPA.看起来很有意思.但是,在我完全进入之前,我想澄清一些问题.

  1. 根据我的了解,SPA是一个瘦服务器,胖客户端应用程序.我认为这应该适用于像John Para所展示的小型应用程序.它是否规模?它有多大?有人有这方面的经验吗?

  2. 在SPA中,您似乎使用JavaScript编写所有业务逻辑.这根本不是一个好主意吗?你如何隐藏业务"秘密"?

我的背景主要是在C#/ WPF/.NET中,转向JavaScript似乎非常困难(好吧,我在十多年前学到了一点JavaScript - 我讨厌它,再也没有碰过它).由于我的知识有限,我遇到了几个问题.调试JavaScript似乎对我来说是一场噩梦.备受好评的组件Breezejs似乎仍处于早期阶段(例如它不支持UOW,不支持CascadeDelete,不支持枚举).所以,我想知道这是跳进去的好时机吗?

javascript asp.net-web-api breeze

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

BreezeJS"WHERE值IN数组"

可以在where子句中指定我希望列值等于数组中某些值的数据吗?

例如:

EntityQuery.from('Customers')
.where('DepartmentID','in','[3,5,6]');
Run Code Online (Sandbox Code Playgroud)

或者我应该如何有效地做到这一点,因为表中有很多条目,检索所有条目效率不高?如果我一个接一个地做它会有效吗?

breeze

8
推荐指数
2
解决办法
2249
查看次数

MaxExpansionDepth带有最新的webapi和微风

我最近更新了所有我的nuget软件包到最新的EF6,breeze 1.4.5,system.web.http.odata 5.0.0.0,以及所有其他可用的好位.

现在,如果一个查询包含像xyz这样的扩展,我会收到如下错误:

A first chance exception of type 'Microsoft.Data.OData.ODataException' occurred in System.Web.Http.OData.dll

Additional information: The request includes a $expand path which is too deep. The maximum depth allowed is 2. To increase the limit, set the 'MaxExpansionDepth' property on QueryableAttribute or ODataValidationSettings.
Run Code Online (Sandbox Code Playgroud)

我查看了建议的修复程序.如果我在查询的breeze'端点'上添加Queryable属性,它似乎会导致各种其他问题.我的猜测是它会干扰微风的预期行为,并以不同的方式格式化结果.

然后,我通过GlobalConfiguration.Configuration ...查看了使用HttpConfiguration EnableQuerySupport扩展方法,但似乎没有效果(请参阅支持OData查询选项)

有没有人知道如何更改默认的webapi行为?

谢谢.

odata asp.net-web-api breeze

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

我的Breeze脚本上已弃用方法的版本问题

当试图在John Papa Pluralsight Video的教程中实现会话部分时.我收到以下错误:

未捕获的TypeError:对象#没有方法'extendQ'

(function () {
    'use strict';

    var app = angular.module('app', [
        // Angular modules 
        'ngAnimate',        // animations
        'ngRoute',          // routing
        'ngSanitize',       // sanitizes html bindings (ex: sidebar.js)

        // Custom modules 
        'common',           // common functions, logger, spinner
        'common.bootstrap', // bootstrap dialog wrapper functions

        // 3rd Party Modules
        'ui.bootstrap',      // ui-bootstrap (ex: carousel, pagination, dialog)
        //'breeze.angular.q'
    ]);

    // Handle routing errors and success events
    app.run(['$route', '$rootScope', '$q', function ($route, $rootScope, $q) {
        // Include $route to kick start …
Run Code Online (Sandbox Code Playgroud)

angularjs breeze q hottowel

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

为什么我必须调用NgZone.run来查看使用breezejs在Angular2中更新?

我正在尝试学习angular2并使用odata webapi后端创建了一个测试应用程序.在应用程序中,我有一个视图,它获取一个项目数组,我想在我的视图中显示这些.

为了从前端获取数据我正在使用breezejs库,因为它已经证明在过去节省了我很多时间,我喜欢将它与odata后端一起使用.

调用树和应用程序结构如下所示:

通过从视图中调用服务函数开始调用以开始获取项目(请注意,我将从每次调用返回es-6承诺):

this._scrumModuleService.fetchActiveSessions().then((sessions: ScrumSession[]) => {
    // Here i have to call zone.run else my view wont update.
    this._zone.run(() => {
        this.sessions = sessions;
    });
}).catch((error: any) => {
     debugger;
});
Run Code Online (Sandbox Code Playgroud)

然后从视图中它将转到服务,该服务又调用存储库:

public fetchActiveSessions(): Promise<ScrumSession[]> {
    return this._scrumSessionRepository.fetchActiveSessions();
}
Run Code Online (Sandbox Code Playgroud)

存储库获取功能:

public fetchActiveSessions(): Promise<ScrumSession[]> {
    return this._dataContext.fetch(new breeze.EntityQuery().from("ScrumSessions").expand(['creator', 'scrumRoom','productOwner', 'users']));
}
Run Code Online (Sandbox Code Playgroud)

然后最终存储库调用(通用)datacontext,它将使用breeze entitymanager执行查询:

public fetch(query: breeze.EntityQuery, isRetry: boolean = false): Promise<any> {

    return new Promise((resolve, reject) => {
            this.entityManager.executeQuery(query).then((result: breeze.QueryResult): void => {
            // Data has been fetched, …
Run Code Online (Sandbox Code Playgroud)

promise typescript breeze ecmascript-6 angular

8
推荐指数
2
解决办法
4221
查看次数