1
我有一個指令來顯示格式化後的JSON文件的內容。指令應該只執行一次
.directive('jsonText', function() {
return {
restrict: 'A',
require: 'ngModel',
scope: {
ngModel: "="
},
link: function(scope, element, attr, ngModel) {
update();
function update() {
var data = scope.ngModel;
console.log(JSON.stringify(attr)+" to ---> "+angular.toJson(data,true));
scope.ngModel = angular.toJson(data,true);
}
}
};});
我的HTML代碼
<div class="col-md-12">
<textarea ng-model="jsondata" readonly json-text rows="10" name="jsonfile" id="jsonfile" style="resize: none"></textarea>
</div>
所以會發生什麼是多步的形式,所以我導航到該代碼多次。
所以第一次達到這個時候,它的格式是正確的。
但第二次發生這樣的事情。
"{\n \"subjectareaname\": \"Defects\",\n \"feedname\": \"Feed for Jira\",\n \"description\": \"Feed for Jira\",\n \"datafeedfor\": \"application\",\n \"name\": \"Log4jphp\"\n}"
我該如何避免這種情況?有什麼辦法可以強制它只工作一次。
你需要修改綁定數據?如果沒有,你可以得到一個ngModel的副本,然後修改它,因此調用update() – masimplo
無論多少次都沒有關係。如果你希望更新在SPA的整個生命週期內只被調用一次,無論次數多少次您正在導航到包含該指令的頁面,您可以將其移動到鏈接函數之外,進入指令引導時間(如果數據可用) – masimplo
只需使用data | JSON?你也用字符串覆蓋數據對象,所以它會是這樣的。 – YOU