Odata Breeze导航属性不可见

Odata Breeze导航属性不可见,odata,breeze,Odata,Breeze,我不了解有关集合导航属性的某些内容 首先,我进行了元数据调试,所有的检查都完成了。根据文档,我希望导航集合属性是可观察的,例如,我可以通过 Foo.Bar() // bar is KO observable array 然而,我不能让它像那样工作 我的问题是: new breeze.EntityQuery() .from('Classes') .where('ClassId', '==', id) .expand('LessonOfClasses') 结果致: [

我不了解有关集合导航属性的某些内容

首先,我进行了元数据调试,所有的检查都完成了。根据文档,我希望导航集合属性是可观察的,例如,我可以通过

Foo.Bar() // bar is KO observable array
然而,我不能让它像那样工作

我的问题是:

new breeze.EntityQuery()
    .from('Classes')
    .where('ClassId', '==', id)
    .expand('LessonOfClasses')
结果致:

[
   {
      "$id":"1",
      "$type":"Model.Class, Model",
      "ClassId":24,
      "LessonOfClasses":[
         {
            "$id":"2",
            "$type":"Model.LessonOfClass, Model",
            "class_lesson_id":30,
            "class_id":24,
            "lesson_id":40,
            "Class":{
               "$ref":"1"
            },
            "Lesson":null
         },
         // other instances of LessonOfClass...
         ]
      // other properties of Class...
    }
[     
我觉得很好。但是,当我运行查询时,结果是:

var classObject = data.results[0];
classObject.LessonOfClasses // returns normal array
classObject.LessonOfClasses() // error:  not a function

当knockout不能作为依赖项使用时,Breeze会使用普通JSON对象

问题是我使用knockout作为require.js依赖项,并且没有设置全局ko引用

requirejs(['knockout'], function(ko) {
    window.ko = ko;
})

Breeze严格地寻找ko,而durandal我认为它寻找的是knockout

你会在.Per-Ward的链接中找到一个为Require.js配置Breeze+knockout应用程序的示例-我发现它专门寻找Require模块名称“ko”。如果你给它起了别的名字,比如knockout,我必须让typescript typedefs高兴,你需要给它起个别名,比如-map:{“*”:{“ko”:“knockout”},}