AngularJS:将<script type =“ application / json”>中的json数据获取到控制器中

用户名

我无法在我的应用程序中使用“单页”应用程序概念,因为我们有遗留代码可以缓慢但稳定地处理和“折弯”我们的应用程序。我需要向一些仍要通过POST提交但未被Ajax触发的表单中添加一些Angular功能。所以我的想法是在POST到服务器后获取更改的数据:

<script type="application/json" json-data ng-model="data">
    <?php echo json_encode($myData, true); ?>
</script>

现在对我来说失败的是将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角度控制器内部的内容(不,我不是指该指令的控制器)。

您可以运行这个插件来了解我的问题: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

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

“ head”部分中的<script type ='application / ld + json'> {jsonObj} </ script>`是什么?

header(“ Content-type:application / json”);`的用法

使用PHP获取<script type =“ application / ld + json”>的内容

如何在Odoo控制器中获取JSON数据?

使用JQuery将JSON数据获取到html中

如何从jsp中的控制器获取json数据?

React Helmet在</ html>外部添加<script type =“ application / ld + json”>

如何将JSON中的数组转换为控制器可以处理的数据类型

如何使用AngularJS控制器从Google App Engine而不是仅从json文件获取数据

以ROR将JSON格式的Postgres中的数据获取到Highcharts javascript中

将json变量传递给AngularJS中的控制器

将JSON转换为Laravel控制器中的模型

将数据从JSON文件获取到jQuery中

angularjs以json格式将数据发布到mvc控制器

如何使用angularjs显示从控制器返回的json数据

在angularjs控制器中过滤Json数据

如何使用type ='json'在Odoo控制器中获取JSON数据?

将多个Json数据传递到Web Api控制器中的列表或数组

RAILS:如何将JSON API数据传递到控制器中的哈希

如何在 angularjs 控制器中获取 json 数据

如何将 JSON 数组更新为 angularjs 控制器中的列表对象

将 JSON 数据从 HTTP 请求传递到 Swift 3 中的另一个视图控制器

AngularJS - 从控制器访问 JSON 数据中的子对象

如何将json数据传递给aspnetcore 2中的控制器

控制器从 application/json 负载中敏感地接受数据大小写

AngularJS 将json数据以列表的形式传递给mvc控制器

将 JSON 数据从 JavaScript 中传递给 Laravel 中的控制器

如何将 JSON 数据发布到 ASP.NET Core Web API 中的控制器?

Go 模板:如何将数组 [] 字符串打印到 <script type="application/ld+json">