从 JSON 转换 "attrs.$observe" 返回值时的 "Unexpected end of JSON" 输入
"Unexpected end of JSON" input when converting a "attrs.$observe" returned value from JSON
我正在设置一个充当 <select></select>
元素的指令,但在附加多个 <li></li>
元素的地方有一些调整。
在我的 DIRECTIVE 中,我有这个...
baseTemplate.js
scope: {
options: '@',
},
link: (scope, element, attrs) => {
// options = ['a', 'b', 'c'];
attrs.$observe('options', value => {
value = angular.fromJson(value);
scope.stored_options = value;
})
}
attrs.$observe
返回的value
是json
。 value = '["a", "b", "c"]';
到目前为止,没有发生错误。
但是,当我使用 angular.fromJson()
方法将其转换为 object
时。发生错误说 "Unexpected end of JSON"
尽管该值已转换为 OBJECT,但我仍然可以使用它。
我只是讨厌控制台内部发生错误,而从技术上讲,没有错误。
与其将属性评估为 JSON,不如考虑:
scope: {
options: '@',
},
link: (scope, element, attrs) => {
// options = ['a', 'b', 'c'];
scope.stored_options = scope.$eval(attrs.options);
}
$eval
的 JavaScript 类解析器比 JSON 解析器更通用。
有关详细信息,请参阅
我正在设置一个充当 <select></select>
元素的指令,但在附加多个 <li></li>
元素的地方有一些调整。
在我的 DIRECTIVE 中,我有这个...
baseTemplate.js
scope: {
options: '@',
},
link: (scope, element, attrs) => {
// options = ['a', 'b', 'c'];
attrs.$observe('options', value => {
value = angular.fromJson(value);
scope.stored_options = value;
})
}
attrs.$observe
返回的value
是json
。 value = '["a", "b", "c"]';
到目前为止,没有发生错误。
但是,当我使用 angular.fromJson()
方法将其转换为 object
时。发生错误说 "Unexpected end of JSON"
尽管该值已转换为 OBJECT,但我仍然可以使用它。
我只是讨厌控制台内部发生错误,而从技术上讲,没有错误。
与其将属性评估为 JSON,不如考虑:
scope: {
options: '@',
},
link: (scope, element, attrs) => {
// options = ['a', 'b', 'c'];
scope.stored_options = scope.$eval(attrs.options);
}
$eval
的 JavaScript 类解析器比 JSON 解析器更通用。
有关详细信息,请参阅