问题标签 [datajs]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
javascript - 如何开发基于 OData 提供程序的 JayData 查询,并支持 list{String}
考虑以下 JayData 实体:
每个人都有许多待办事项。
现在我可以加载至少完成一项待办事项的人。(在 Windows Server 2008 R2 上使用 JayData 1.3.4 & Web API & OData 5.6 和 IIS 7)。
看看工作正常的样本:http: //jsfiddle.net/ysmoradi/P59jz/5/
但我想运行另一个查询,它与这个查询稍有不同。
我想在OtherNames的List{String}中加载具有特殊名称的人
我的问题的 OData 查询示例运行良好:
如何以任何可能的方式在 JayData 中完成此 OData 查询?
谢谢
post - Datajs:如何修改 rel 属性?
我正在尝试将原子格式的链接条目发布到 Odata 服务。我的有效负载中唯一缺少的是 rel-attribute 应该是:“ http://schemas.microsoft.com/ado/2007/08/dataservices/related/SOItems ”。目前它自动生成到“ http://schemas.microsoft.com/ado/2007/08/dataservices/related/links ”
这是我当前的链接条目:
如何使用 datajs 为链接条目设置 rel 属性。
谢谢,
溴,反相
requirejs - 如何加载在单个文件中定义的多个命名 AMD 模块?
我的理解是它不应该发生,但它确实发生了。这些库最合适的解决方法是什么?
笔记:
- 我认为手动运行这些脚本
require.js
(使用脚本标签)应该可以工作,而且确实看起来确实如此。但是,RequireJS 文档明确警告该data-main
脚本是异步运行的。虽然require.js
应该已经正确定义了define
定义多个命名模块的脚本所需的功能,但我还假设如果没有从data-main
脚本加载正确的配置,可能会以非确定性的方式发生坏事。这个对吗? - 在这种情况下,我也看不出 , 和 configuration 属性的任何组合如何
shim
提供帮助,尽管我希望我错过了它。map
bundles
paths
第一个注释的澄清:(我的错,真的不清楚)
我在这里描述的只是手动执行(使用 HTML 脚本标签)定义RequireJS 和脚本之后data-main
的多个模块的脚本。知道后者是异步运行的,我的担忧应该会变得更加明显(但请随时要求我详细说明)。大部分是虽然我似乎可以成功地要求每个命名模块,但我不确定行为是确定性的(而且,它并不漂亮,我宁愿避免额外的脚本标签并异步正确加载所有内容) .
在这里,datajs-1.1.2.js 定义了两个模块,如上面链接中所述并复制如下:
javascript - 为什么我会收到此错误?错误:无法通过名称找到“类型”:“用户:#Default”
我正在尝试将 OdataBreezeJSSample 调整到我的项目中。元数据被调用和填充,但我的查询:
var people = breeze.EntityQuery
.from("Users")
.using(manager)
.select('Email')
.execute()
.then(function() {
})
.catch(function(err) {
var isEmpty = manager.metadataStore.isEmpty();
});
失败并显示错误消息:
错误:无法通过名称找到“类型”:“用户:#Default”。请务必先执行查询或调用 fetchMetadata。
检查 metadataStore 在我的项目中显示为:
检查有效的样本,元数据看起来不同:
据我所知,我的设置代码与示例匹配。我也使用相同版本的库。查询永远不会触发,唯一的调用是获取 $metadata。
我曾尝试调用 fetchMetadata(),但它只是创建了对 /$metadata 的重复调用。
什么可能导致此错误消息?
更新:
这是 EDMX。我已经确认工作示例中只有 1 个模式。我无法弄清楚这个额外的模式是从哪里生成的。生成 EDM 的所有代码都与示例匹配。
<xml version="1.0" encoding="utf-8"?>
<edmx:Edmx Version="1.0" xmlns:edmx="http://schemas.microsoft.com/ado/2007/06/edmx">
<edmx:DataServices m:DataServiceVersion="3.0" m:MaxDataServiceVersion="3.0" xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata">
<Schema Namespace="SCATowel.Models" xmlns="http://schemas.microsoft.com/ado/2009/11/edm">
<EntityType Name="User">
<Key>
<PropertyRef Name="Id" />
</Key>
<Property Name="Id" Type="Edm.Int32" Nullable="false" />
<Property Name="Name" Type="Edm.String" />
<Property Name="Login" Type="Edm.String" />
<Property Name="Email" Type="Edm.String" />
<Property Name="IsAppAdmin" Type="Edm.Boolean" Nullable="false" />
<NavigationProperty Name="Sites" Relationship="SCATowel.Models.SCATowel_Models_User_Sites_SCATowel_Models_Site_SitesPartner" ToRole="Sites" FromRole="SitesPartner" />
<NavigationProperty Name="Settings" Relationship="SCATowel.Models.SCATowel_Models_User_Settings_SCATowel_Models_Setting_SettingsPartner" ToRole="Settings" FromRole="SettingsPartner" />
</EntityType>
<EntityType Name="Setting">
<Key>
<PropertyRef Name="Id" />
</Key>
<Property Name="Id" Type="Edm.Int32" Nullable="false" />
<Property Name="SiteListLocation" Type="Edm.String" />
<NavigationProperty Name="User" Relationship="SCATowel.Models.SCATowel_Models_Setting_User_SCATowel_Models_User_UserPartner" ToRole="User" FromRole="UserPartner" />
</EntityType>
<EntityType Name="Site">
<Key>
<PropertyRef Name="Id" />
</Key>
<Property Name="Id" Type="Edm.Int32" Nullable="false" />
<Property Name="Title" Type="Edm.String" />
<Property Name="Url" Type="Edm.String" />
<Property Name="IsSiteAdmin" Type="Edm.Boolean" Nullable="false" />
<Property Name="IsSiteOwner" Type="Edm.Boolean" Nullable="false" />
<NavigationProperty Name="User" Relationship="SCATowel.Models.SCATowel_Models_Site_User_SCATowel_Models_User_UserPartner" ToRole="User" FromRole="UserPartner" />
</EntityType>
<Association Name="SCATowel_Models_User_Sites_SCATowel_Models_Site_SitesPartner">
<End Type="SCATowel.Models.Site" Role="Sites" Multiplicity="*" />
<End Type="SCATowel.Models.User" Role="SitesPartner" Multiplicity="0..1" />
</Association>
<Association Name="SCATowel_Models_User_Settings_SCATowel_Models_Setting_SettingsPartner">
<End Type="SCATowel.Models.Setting" Role="Settings" Multiplicity="*" />
<End Type="SCATowel.Models.User" Role="SettingsPartner" Multiplicity="0..1" />
</Association>
<Association Name="SCATowel_Models_Setting_User_SCATowel_Models_User_UserPartner">
<End Type="SCATowel.Models.User" Role="User" Multiplicity="0..1" />
<End Type="SCATowel.Models.Setting" Role="UserPartner" Multiplicity="0..1" />
</Association>
<Association Name="SCATowel_Models_Site_User_SCATowel_Models_User_UserPartner">
<End Type="SCATowel.Models.User" Role="User" Multiplicity="0..1" />
<End Type="SCATowel.Models.Site" Role="UserPartner" Multiplicity="0..1" />
</Association>
</Schema>
<Schema Namespace="Default" xmlns="http://schemas.microsoft.com/ado/2009/11/edm">
<EntityContainer Name="Container" m:IsDefaultEntityContainer="true">
<EntitySet Name="Users" EntityType="SCATowel.Models.User" />
<EntitySet Name="Settings" EntityType="SCATowel.Models.Setting" />
<EntitySet Name="Sites" EntityType="SCATowel.Models.Site" />
<AssociationSet Name="SCATowel_Models_User_Sites_SCATowel_Models_Site_SitesPartnerSet" Association="SCATowel.Models.SCATowel_Models_User_Sites_SCATowel_Models_Site_SitesPartner">
<End Role="SitesPartner" EntitySet="Users" />
<End Role="Sites" EntitySet="Sites" />
</AssociationSet>
<AssociationSet Name="SCATowel_Models_User_Settings_SCATowel_Models_Setting_SettingsPartnerSet" Association="SCATowel.Models.SCATowel_Models_User_Settings_SCATowel_Models_Setting_SettingsPartner">
<End Role="SettingsPartner" EntitySet="Users" />
<End Role="Settings" EntitySet="Settings" />
</AssociationSet>
<AssociationSet Name="SCATowel_Models_Setting_User_SCATowel_Models_User_UserPartnerSet" Association="SCATowel.Models.SCATowel_Models_Setting_User_SCATowel_Models_User_UserPartner">
<End Role="UserPartner" EntitySet="Settings" />
<End Role="User" EntitySet="Users" />
</AssociationSet>
<AssociationSet Name="SCATowel_Models_Site_User_SCATowel_Models_User_UserPartnerSet" Association="SCATowel.Models.SCATowel_Models_Site_User_SCATowel_Models_User_UserPartner">
<End Role="UserPartner" EntitySet="Sites" />
<End Role="User" EntitySet="Users" />
</AssociationSet>
</EntityContainer>
</Schema>
</edmx:DataServices>
</edmx:Edmx>
angularjs - Breeze.JS 使用 angular.js http
我正在尝试让 Breeze.JS 使用 angular 的 http 服务进行 ajax 调用。我遵循了文档(http://www.breezejs.com/documentation/customizing-ajax)并应用了它。但是它不起作用。
此外,当我检查微风源代码时,我看到以下内容:
它只是调用 OData.read 而不对 http 服务做任何事情。因此 OData 使用了内置的 ajax。我不明白上面的代码,如何自定义 Breeeze.JS 的 ajax
json - JayData JSON 解码错误
我有从 ASP.Net oData 服务返回的 JSON 对象,我正在通过 JayData oData 提供程序读取这些对象。在一项服务中,JSON 对象被读取到一个数组中,没有任何问题。在另一个服务(来自同一服务器)上,结果数组仅包含所有元素的 etag 数据。
我不确定是否存在格式不匹配或 JayData 未正确解码 JSON 格式。
有人可以看看问题出在哪里吗?
这是标题
这是 JSON 数据。
在结果数组中,对于每个客户,所有字段(FName、LName、电话)都包含确切的数据(等于“etag”字段)。这是 Customer(1) 的示例
JSON 数据通过 toLiveArray() 方法读取。
internet-explorer - OData.read 在 IE 中不起作用(缺少标题,没有数据) - 在 Firefox 中有效
我有一个 SAP 网关系统,我在其中创建在 jQuery HTML5 页面中使用的 OData 服务。
在做 HTML 页面时,我总是使用 Firefox 来运行它。现在我希望用户测试应用程序,SAP 自动使用 IE(我安装了 IE 10)。
通过 OData.read 函数(datajs 库)发送的完全相同的请求在 IE 中没有给我任何结果,但在 Firefox 中却有。我达到了成功回调函数,但也没有结果。无论如何,这是其中一项服务。我同时调用的另一项服务确实会像 Firefox 一样给我返回结果。奇怪的是,在成功回调函数中,IE 中的标头(对象)是空的,但是在使用 IE 进行调试时,我确实有一个响应标头。
我测试的方式是使用eclipse和localhost。Firefox 可以,IE 不行。
我真的不知道如何解决这个问题并感谢任何帮助!
我的请求 JS:
根据 Firefox 的请求标头:
根据 IE 的请求头
IE 调试器中的响应标头:
但是对象是空的:
JS
响应对象
odata - Breeze - 将 ANY 运算符与 OData 一起使用时出错
当我尝试在 OData 服务上将 ANY 运算符与 Breezejs 一起使用时出现错误:
我收到以下错误:
这个 HTTP 请求运行良好:
当我在执行查询之前尝试使用元数据时,出现以下错误:
Breeze 似乎使用了错误的命名空间“Order:#System.Data.Objects”。正确的命名空间是“App.API.Context”,如 exportMetadata 函数所示:
谢谢你的帮助 !
asp.net-web-api - Http 响应中缺少 DataServiceVersion 标头
我目前正在使用带有代码优先方法的 Web Api 2 和 EF6 开发 OData 服务。我的控制器继承自普通的ApiController Base。
我用 Queryable 属性修饰了我的操作方法,并且还在 WebApiConfig 文件中启用了查询支持。通过我的 CORS 策略,我已将 DataServiceVersion 和 MaxDataServiceVersion 指定为我的 Accept 和 Exposed Headers 的一部分。
奇怪的是,我的 odata 端点似乎没有将DataServiceVersion作为响应标头的一部分返回,但是,如果我的控制器从 ODataController 基础继承,我可以在响应中看到它。
有没有办法在使用 ApiController 作为基础时启用此标头。
需要此标头,因为 datajs 在客户端需要它。