AngularJs有条件地为一个范围变量

时间:2015-10-26 15:46:53

标签: angularjs

好的,所以让我用这个作为前缀,说我确信我是以向后的方式做这件事,但我不能为我的生活看看应该怎么做。

我有以下范围变量:

  $scope.house.petsModel = function(){
    if(!PetService.isCreate()){
        return CommonService.getPetsById($scope.petModel.id, $scope.availablePets);
    }
    else{return {}}
}

这里的想法是根据我是创建新宠物还是编辑现有宠物来有条件地设置我的house.petsModel,以便我可以重复使用相同的视图。

我得到的错误如下:

TypeError: Cannot assign to read only property 'petsModel' of true
at new <anonymous> (add-pet.js:26)
at invoke (angular.js:4476)
at Object.instantiate (angular.js:4484)
at angular.js:9142
at resolveSuccess (ui-bootstrap.js:4138)
at processQueue (angular.js:14678)
at angular.js:14694
at Scope.$eval (angular.js:15922)
at Scope.$digest (angular.js:15733)
at Scope.$apply (angular.js:16030)

我很困惑为什么它认为我不应该为我的petsModel范围变量写一个值。

有谁能告诉我这里我做错了什么?

按要求:这就是我宣布房屋的方式

$scope.house = HouseService.getHouse();

1 个答案:

答案 0 :(得分:0)

看起来Chrome实际上是让我进行了一次疯狂的追逐,错误与问题所处的完全无关,而问题是在编辑中设置但未创建的因变量。

firefox有一个有意义的错误,因为chrome没有O.o