AngularJS:从<script type=“application/json”>获取json数据到控制器中
AngularJS: Get json data from <script type="application/json"> into controller
我还不能在我的应用程序中使用"单页"应用程序概念,因为我们有遗留代码来处理和"棱角化"我们的应用程序缓慢但稳定。我需要为不同的表单添加一些 Angular 功能,这些表单仍将通过 POST 提交但不由 Ajax 触发。因此,我在向服务器开机自检后获取更改数据的想法是这样的:
<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
应删除隔离范围。然后,您可以使用 ng-model
属性填充新的范围变量。
<script type="application/json" json-data ng-model="data">{"sample": "data"}</script>
<script type="application/json" json-data ng-model="data2">{"sample": "more data"}</script>
<script type="application/json" json-data ng-model="data3">{"sample": "even more data"}</script>
<pre>{{data | json}}</pre>
<pre>{{data2 | json}}</pre>
<pre>{{data3 | json}}</pre>
<pre>{{test | json}}</pre>
命令
app.directive('jsonData', [function() {
return {
restrict: 'A',
link: function(scope, element, attributes, controller) {
scope[attributes.ngModel] = JSON.parse(element.html());
}
};
}]);
http://plnkr.co/edit/INyT5KTKaq5Hr6teOFiz?p=preview
相关文章:
- JSON获取用户id's在嵌套数组中
- JSON:获取映射数据
- Jquery从JSON获取数据(未定义)
- 从 JSON 获取键值对而不使用 .(DOT) 在 Java 脚本或 jquery 中
- Django 使用 JSON 获取模型方法的值
- TypeError: 使用 Jquery JSON 获取数据时无效的 'in' 操作数 obj
- JSON获取地理位置在HTML中未返回值
- 从javascript中的JSON获取位置
- Angular Js无法使用浮点形式json获取int
- AngularJS,从json获取单个帖子
- 在服务器端创建html元素VS将数据作为JSON获取,并使用javascript创建标签
- 无效的“in”操作数 obj JQUERY - 尝试从 JSON 获取数据时出现类型错误
- 无法从 JSON 获取值
- 如何将动态数据从JSON获取到jvqmaps中,作为对象而不是来自php mysqli的数组
- 在 react.js 中从 Json 获取数据
- 从特定索引开始从 json 获取字符串值
- 如何在变量中存储从 JSON 获取的数据
- 无法从 JSON 获取数据
- 如何将 API 请求中的 JSON 获取到页面的 javascript 中
- 网格堆栈.js从 JSON 获取位置