How to get around Error: $compile:nonassign Non-Assignable Expression in angular 1.5 component

How to get around Error: $compile:nonassign Non-Assignable Expression in angular 1.5 component

所以我对组件、绑定和 Angular 2 范例比较陌生。我想让我的 Angular 1.3 应用程序准备好传输,所以我一直在尝试采用新的组件指令。

尽管如此,我还是无法克服不可分配的绑定错误!

这是我包含组件的地方:

<schedule currentSchedule="[]" class="panel"></schedule>

以及组件本身:

app.component('schedule', {
bindings: {
    currentSchedule: "="
},
controllerAs: 'SchedCtrl',
controller: function(Schedules) 
{

    var scope = this

    Schedules.refresh()
    .then(function(result) {
        scope.currentSchedule = result
    })
},
templateUrl: "templates/schedule.html"
})

以及组件模板:

<div ng-repeat="apt in SchedCtrl.currentSchedule | orderBy: 'App_DtTm'">
    {{apt.name}}
</div>

我觉得我在这里遗漏了一些非常明显的东西。任何帮助将不胜感激。

该错误意味着您正试图通过双向绑定为表达式 [] 赋值。

https://docs.angularjs.org/error/$compile/nonassign

如果您确实需要双向绑定,请使用父作用域的 属性。

<schedule currentSchedule="parentCtrl.currentSchedule" class="panel"></schedule>

如果不需要双向绑定,请使用<而不是=,并将初始计划和当前计划分开。

app.component('schedule', {
  bindings: {
    initialSchedule: "<"
  },
  controllerAs: 'SchedCtrl',
  controller: function(Schedules) 
  {

    var scope = this
    scope.currentSchedule = scope.initialSchedule

    Schedules.refresh()
      .then(function(result) {
        scope.currentSchedule = result
    })
  },
  templateUrl: "templates/schedule.html"
})