$parse —— 将一个AngularJS表达式转换成一个函数

html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script src="js/angular.min.js"></script>
</head>
<body>
<div ng-app="MyApp">
    <div ng-controller="MyController">
        <h1>{{ParsedValue}}</h1>
        //<input type="text" ng-model="expression"/>
    </div>
</div>
</body>

js

1:
angular.module("MyApp", [])
        .controller("MyController", function ($scope, $parse) {
            var context = {
                name: "王尼玛"
            };
            var expression = "'暴走 ' + name";
            var parseFunc = $parse(expression);
            $scope.ParsedValue = parseFunc(context);
        });

2:
    angular.module("MyApp", [])
        .controller("MyController", function ($scope, $parse) {
            $scope.$watch("expression", function (newValue, oldValue, context) {

                if (newValue !== oldValue) {
                    var parseFunc = $parse(newValue);
                    $scope.ParsedValue = parseFunc(context);
                }
            });
        });

3:
    angular.module("MyApp", [])
        .controller("MyController", function ($scope, $parse) {
            $scope.context = {
                add: function (a, b) {
                    return a + b;
                },
                mul: function (a, b) {
                    return a * b;
                }
            };
            $scope.expression = "mul(a,add(b,c))";
            $scope.data = {
                a: 2,
                b: 4,
                c: 5
            };
            var parseFunc = $parse($scope.expression);
            $scope.ParsedValue = parseFunc($scope.context, $scope.data);

        })

参考文章如下:
https://segmentfault.com/a/1190000002749571

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 前些日子从@张鑫旭微博处得一份推荐(Front-end-tutorial),号称最全的资源教程-前端涉及的所有知识...
    谷子多阅读 4,287评论 0 44
  • 雨夜 久违了。 好久了, 同样的, 在那雷雨交加的夜晚。 读小学的我, 正在加着班, 赶着七天假期的功课。 记不清...
    岁光军阅读 216评论 0 0
  • 一句离别断了厮守 时间白了头 浪迹天涯为谁瘦 蓦然回首情字怎么留 一杯烈酒醉饮西楼 窗外月如钩 思念一夜愁 才下眉...
    夜已空阅读 517评论 4 6
  • 人生有三把钥匙:接受 改变 离开。 不能接受那就改变, 不能改变,那就离开。 乐观的人只顾着笑,而忘了怨; 悲观的...
    董鑫joe阅读 206评论 0 0
  • 阴雨天。 有点冷,打开空调。娃在客厅自己折腾,我在书房看书写字整理心情。 厦门回来已经有两天了,行李箱早已整理完毕...
    Anne_GG阅读 238评论 0 1