我不能在我的应用程序中使用“单页”应用程序概念,因为我们有遗留代码来处理并缓慢但稳定地“推理”我们的应用程序。 我需要将一些Angular功能添加到仍然通过POST提交但不是由Ajax触发的不同表单中。 所以我想在POST到服务器后获取更改的数据是这样的:
<script type="application/json" json-data ng-model="data">
<?php echo json_encode($myData, true); ?>
</script>
对我来说现在失败的是将脚本标记内的json数据放入我的控制器范围。 我为此写了一个自定义指令:
angular.module('app').directive('jsonData', [function() {
return {
restrict: 'A',
scope: {
ngModel: '='
},
link: function(scope, element, attributes, controller) {
var object = JSON.parse(element.html());
attributes.ngModel = object;
},
controller: function($scope) {
console.log($scope.ngModel);
}
};
}]);
但是,这不会更新我的角度控制器内的$scope
(不,我不是指指令的控制器)。
你可以运行这个plunker来了解我的问题: http ://plnkr.co/edit/O4FZUgN21LRRfqyDQCVT