{foo|json}
很適合輸出$ scope的子集。如何將整個範圍發送到json
過濾器?如何json輸出整個範圍?
1
A
回答
0
事實證明,即使您試圖通過使用controllerAs
語法並將注入的$scope
附加到您的上下文來欺騙它,JSON過濾器也不會允許您輸出整個$scope
對象。
模板:
<div ng-app="app">
<div ng-controller="TestCtrl as vm">
<div ng-bind="vm.foo | json"></div>
<div ng-bind="vm.scope | json"></div>
</div>
</div>
JS:
var app = angular.module('app', [])
.controller('TestCtrl', function ($scope) {
var vm = this;
vm.foo = {
bar: "test bar",
foobar: "test foobar"
};
vm.scope = $scope;
console.log(vm.scope);
});
在這個例子中Fiddle,
{ "bar": "test bar", "foobar": "test foobar" }
用於vm.foo
輸出但
"$SCOPE"
輸出爲vm.scope
。
因此,它會出現你不能發送實際的作用域對象到JSON過濾器。您需要循環並創建一個僅包含所需相關數據的新對象。在這種情況下,您不能使用angular.copy
,因爲角度會禁止它。
0
Angular擁有自己的json函數,它可以防止您正常執行此操作。
function toJson(obj, pretty) {
if (typeof obj === 'undefined') return undefined;
return JSON.stringify(obj, toJsonReplacer, pretty ? ' ' : null);
}
function toJsonReplacer(key, value) {
....
} else if (isScope(value)) {
val = '$SCOPE';
}
....
}
除非你這樣做,否則可能是一種黑客行爲,因爲這個=== $ scope在角模板中。
<div ng-repeat="(k, v) in ($$=this)">
<div ng-if="k!='$$' && k!='this'">key: {{k}}
<pre ng-bind="$$[k]|json:4"></pre>
</div>
</div>
全部摘錄或fiddle
var app = angular.module('app', [])
.controller('TestCtrl', function ($scope) {
$scope.foo = {
bar: "test bar",
foobar: "test foobar"
};
$scope.zzz = {
bar: "test bar",
foobar: "test foobar"
};
});
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-app="app">
<div ng-controller="TestCtrl">
<div ng-repeat="(k, v) in ($$=this)">
<div ng-if="k!='$$' && k!='this'">key: {{k}}
<pre ng-bind="$$[k]|json:4"></pre>
</div>
</div>
</div>
</div>
或者如果你想獲得$範圍作爲單個對象JSON,你可以不喜歡這裏,或fiddle
<div ng-init="$scope={}">
<div ng-repeat="(k, v) in ($$=this)" ng-init="$scope[k] = $$[k]" ng-if="k!=='$$'&&k!=='this'&&k!=='$scope'">
</div>
</div>
<pre ng-bind="$scope|json:4"></pre>
哪個outp ut
{
"foo": {
"bar": "test bar",
"foobar": "test foobar"
},
"zzz": {
"bar": "test bar",
"foobar": "test foobar"
}
}
相關問題
- 1. 如何打印整個JSON輸出?
- 2. JSON索引超出範圍
- 3. 如何將輸入值與數組的整個範圍匹配?
- 4. 使範圍輸出響應
- 5. php:使用範圍輸出
- 6. 範圍驗證器 - 檢查整數範圍時輸入字母
- 7. 如何使用rxjs發出一定範圍的特定範圍內的整數
- 8. 如何在一個範圍中包裝回聲的輸出
- 9. AngularJS JSON範圍
- 10. 調整模糊值的輸入範圍
- 11. 迴文編程輸出超出範圍
- 12. 超出範圍Poiner的意外輸出
- 13. 輸入當轉換爲整數超出範圍
- 14. OCaml中輸出限制的整數範圍
- 15. Postgres DB上的整數超出範圍
- 16. 無符號長整數超出範圍?
- 17. 如何在範圍組整數中擊
- 18. VBA如何通過整數範圍值
- 19. 如何將輸入範圍設置爲多個工作表範圍?
- 20. 如何在JSON中處理索引超出範圍(Go)
- 21. 如何解決「爲列調整超出範圍值」錯誤?
- 22. 如何限制用戶輸入到一個整數範圍 - python 3.6
- 23. AngularJS中的範圍和變量輸出
- 24. bash shell數組輸出範圍到csv
- 25. VBA ExportAsFixedFormat到PDF的範圍和輸出
- 26. Materialise的CSS-輸入範圍值彈出
- 27. 某一範圍內沒有輸出
- 28. 限制按範圍在XSLT輸出
- 29. 替換和範圍替換輸出
- 30. 帶輸出的HTML範圍滑塊