$parse - AngularJS 표현식을 함수로 변환

1782 단어

html




    
    Title
    


{{ParsedValue}}

//

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

좋은 웹페이지 즐겨찾기