将BreezeJS与AngularJS一起使用会产生错误.例如,在ng-repeat中使用'filter'时,控制台会报告:堆栈空间不足.
重现步骤
<ul>
<div>
<input ng-model="query" type="search" placeholder="search" />
</div>
Run Code Online (Sandbox Code Playgroud)
<li data-ng-repeat="item in items | filter:query">
Run Code Online (Sandbox Code Playgroud)
过滤器:查询应根据输入中的文本过滤列表,但不会.在IE 10中,控制台报告"用完堆栈空间".在Chrome中,控制台报告"范围错误":
(anonymous function) angular.js:5582
(anonymous function) angular.js:4679
Scope.$digest angular.js:7739
Scope.$apply angular.js:7926
listener angular.js:11228
v.event.dispatch jquery-1.8.3.min.js:2
o.handle.u
Run Code Online (Sandbox Code Playgroud)
当你使用angular.copy(src,dest); 其中src是由BreezeJS创建的,我看到另一个stack_overflow错误.
我正在尝试使用Durandal,Breeze和淘汰赛来实现WebApi OData.但我总是低于错误:
无法初始化OData.需要支持远程OData服务
我创建了一个视图模型:
var my = {}; //my namespace
$(function () {
var serverAddress = "/odata/";
breeze.config.initializeAdapterInstances({ dataService: "OData" });
var manager = new breeze.EntityManager(serverAddress);
my.vm = {
customers: ko.observableArray([]),
load: function () {
var query = breeze.EntityQuery.from("Customers");
manager.executeQuery(query, function (data) {
var results = data.results;
$.each(data.results, function (i, c) {
my.vm.customers.push(c);
});
});
}
}
my.vm.load();
ko.applyBindings(my.vm);
});
Run Code Online (Sandbox Code Playgroud)
在BreezWebApiConfig中提到:
public static void RegisterBreezePreStart() {
GlobalConfiguration.Configuration.Routes.MapHttpRoute(
name: "BreezeApi",
routeTemplate: "api/{controller}/{action}"
);
}
Run Code Online (Sandbox Code Playgroud)
并注册WebApi:
public static void Register(HttpConfiguration config)
{ …Run Code Online (Sandbox Code Playgroud) 我正在使用ASP.net Web Api开发Breeze JS To Dos应用程序.当我向资源请求时,我得到"元数据查询失败:odata/Todos/Metadata; NaN".但是,当我手动请求/ odata/Todos/Metadata时,它工作正常.你有什么想法吗?
我已经看过许多关于制作SPA(单页面应用程序)的教程,其中许多都使用了外部库,如breezejs和jaydatajs,以获得自动数据服务层.
这些库期望我将公开他们可以查询的IQueryable对象.
我的问题是,从服务器中暴露出IQueryable的风险是什么?我想知道如果用这些js库制作这个快捷方式值得,或者我应该在服务器中公开我自己的函数并在客户端自己实现dataservice.
问题是,当暴露Iqueryable时,我可以使用breezejs来创建用于使用linq like语法进行过滤和分页的查询.如果我不使用它,我将不得不在服务器中实现这些过滤和分页功能.并在javascript中实现对它们的调用.
我希望我很清楚:-)
我从关于BeforeSaveEntities的Breeze文档中读到以下内容:
"可以在此方法返回的地图中添加或删除实体".
所以我想我可以在saveMap中添加一个新的EntityInfo实例.我的问题是:我该怎么做?在任何地方都有这样的例子吗?
我可以完美地遍历字典.但是因为EntityInfo没有构造函数,并且它的所有字段都只是get,所以我觉得有点卡在这里.欢迎任何帮助.
谢谢
我刚刚开始学习SPA应用程序,我在IE8上运行它时遇到问题.我正在使用mvc4和EF.该应用程序使用durandal构建.
我使用的是jquery 1.10,因为jquery 2在IE 8上不起作用.
基本上我得到的错误是
'Unhandled exception at line 786, column 9 in http://localserver/scripts/breeze.debug.js
0x800a01b6 - Microsoft JScript runtime error: Object doesn't support this property or method'.
Run Code Online (Sandbox Code Playgroud)
该应用程序在Firefox和Chrome上运行良好.
我正在尝试创建一个Breeze Web API控制器,我想知道是否可以使用Visual Studio 2013附带的默认MVC/Web API项目模板.通过Nuget数据包管理器更新所有内容安装Entity Framework 6.0.1.尝试安装Breeze后会尝试将EF 5作为依赖项进行安装,但由于模板的其他部分依赖于EF6,这是不可能的.我们是否必须等待适用于EF6的新版Breeze?
编辑:我想使用[BreezeController]和Odata这样做"微风".
我遇到了我认为是Breeze中的一个bug.为了确保错误与我项目中的其他代码无关,我在Ward Bell提供的一个plunker中模拟了同样的问题.
我添加到Ward的原始plunker的代码是:
在main.html中
<button ng-click="vm.deleteHero(vm.currentHeroVm.hero)">Delete hero</button>
Run Code Online (Sandbox Code Playgroud)
并在main.js
vm.deleteHero = deleteHero;
function deleteHero(hero) {
console.log(hero.powerMaps.length);
hero.powerMaps.forEach(function(powerMap) {
console.log('Hero: ' + powerMap.heroId + ', Power: ' + powerMap.powerId);
powerMap.entityAspect.setDeleted() // comment me out to see console.log work correctly
});
}
Run Code Online (Sandbox Code Playgroud)
要看到手头的问题,请注意console.log我正在制作的电话.第一个显示powerMaps所选英雄的数组长度.第二个显示循环内powerMap的英雄和幂id.
有了hero选择,打开控制台窗口,并击中Delete按钮.
如果有人注释掉该行powerMap.entityAspect.setDeleted(),则应用程序会正确地遍历每行powerMap.
但是,只要powerMap.entityAspect.setDeleted()添加到代码中,就不会powerMap达到每个代码.
这意味着我目前无法可靠地遍历数组并删除实体.你会注意到,如果你继续点击删除按钮,代码最终会到达所有实体.
有什么想法吗?
SELECT
*
FROM
Table
WHERE
FirstName = 'Wilson'
AND (START_DATE = '1/1/2014' OR START_DATE > '1/2/2014')
Run Code Online (Sandbox Code Playgroud) 我之前使用过RIA服务,现在正在测试Breeze Sharp.
RIA以及Breeze给人的印象是,您在服务器/中间层看到的内容就是您在客户端上看到的内容.为了支持这一点,术语Entity正在客户端和服务器上使用.它真的是一个实体,还是它真的是客户端上的表示模型或模型?
对于具有一个或两个级别实体图的较小系统,可能没有错误认为客户端和服务器是相同的.对于图表深入五到六个级别的大型系统,需要将实体转换为DTO以使其变得简单.除非UI具有一些实体的CRUD屏幕,否则大型应用程序最终会有更多的DTO和更少的实体.大多数情况下,这些DTO将代表用户界面想要的东西,并且等同于演示模型.
为什么我们不能将客户端处理的内容视为表示模型而不是实体?
breeze ×10
javascript ×2
knockout.js ×2
angularjs ×1
asp.net ×1
breeze-sharp ×1
durandal ×1
iqueryable ×1
linq ×1
odata ×1
ria ×1
sql ×1