我遇到了一个奇怪的错误,在我更改了组件控制器中包含数据的对象后,输入字段(例如ng-model="taxiCtrl.localTaxi.dest"
)变为空白。重要的是我最初虽然值是空白但是当我在随机按钮上设置console.log($scope.taxiCtrl.localTaxi.dest);
时,在我点击它之后,值就在那里,但是该字段是空白的。是否有任何理由为什么角度显示空白而不是实际值?
在组件控制器方面,这里发生了变化:
ctrl.$onChanges = function (changes) {
if (changes.taxi) {
console.log("change recieved");
console.log(changes.taxi);
ctrl.localTaxi = angular.copy(changes.taxi.currentValue);
console.log(ctrl.localTaxi);
}
};
最令人困惑的部分是以下日志有两种情况:
1)
change recieved
taxi-select-item-controller.js:20 JbcurrentValue: Taxicar: "Green Clown Car"comp: "666"dest: "Botanica"id: "6663"number: ""psngrs: Array[1]time: "23:20"__proto__: ObjectpreviousValue: Taxicar: "Black Cadillac"comp: "111"dest: "Botanica"id: "121"number: ""psngrs: Array[1]time: "12:10"__proto__: Object__proto__: Object
taxi-select-item-controller.js:22 Taxicar: "Green Clown Car"comp: "666"dest: "Botanica"id: "6663"number: ""psngrs: Array[1]time: "23:20"__proto__: Objectconstructor: Taxi(taxi)__proto__: Object
taxi-select-item-controller.js:19
2)
change recieved
taxi-select-item-controller.js:20 JbcurrentValue: Taxicar: "Green Clown Car"comp: "666"dest: "Botanica"id: "127"number: ""psngrs: Array[2]0: "just"1: "DO_IT"length: 2__proto__: Array[0]time: "23:20"__proto__: ObjectpreviousValue: Taxicar: "Black Cadillac"comp: "111"dest: "Botanica"id: "121"number: ""psngrs: Array[1]time: "12:10"__proto__: Object__proto__: Object
taxi-select-item-controller.js:22 Taxicar: "Green Clown Car"comp: "666"dest: "Botanica"id: "127"number: ""psngrs: Array[2]time: "23:20"__proto__: Object
taxi-select-item-controller.js:19
控制器收到的对象相同,但第一个实例在ngModels中显示新对象的数据,而第二个实例显示空白。
答案 0 :(得分:0)
检查输入类型正在使用的数据类型以及您提供的数据类型(如果它们可能发生的类型不同)。