解决这个问题的方法是清理我的控制器存储在
$scope.model.value
.
Umbraco似乎对angularjs放入作用域变量(“$$hashKey”等)中的额外元数据“东西”很敏感,这似乎是导致我的数据类型随后被错误的JSON字符串而不是预期的JSON对象初始化的原因。
最后,我选择:
-
克隆模型值(即
$scope.myModel
如下所示)我的数据类型是用
-
建立一个
$watcher
同步
$model.scope.value
有任何改变
$scope.myModel范围
-
在同步过程中,存储
$scope.myModel范围
(即排除内部角度元数据,如“$$hashKey”)的
$model.scope.value值
示例伪代码演示解决方案:
angular.module('umbraco')
.controller('MyDataType', ['$scope', function ($scope) {
$scope.myModel = cloneValue($scope.model.value)
var endWatcher = $scope.$watch('myModel', function() {
$scope.model.value = cloneAndSanitizeMyModel($scope.myModel)
});
$scope.$on('$destroy', function() {
endWatcher();
});
}])