Angularjs手動(dòng)解析表達(dá)式($parse)
下面一段代碼給大家介紹了angularjs手動(dòng)解析表達(dá)式($parse),具體代碼如下所示:
<!DOCTYPE html> <html lang="zh-CN" ng-app="app"> <head> <meta charset="utf-8"> <title>手動(dòng)解析表達(dá)式($parse)</title> <link rel="stylesheet" href="../bootstrap.min.js"> </head> <body ng-controller="myController"> <div ng-controller="myController"> <input type="text" ng-model="expr" placeholder="enter an expression"> <h2>{{ parsedValue }}</h2> </div> <script src="../angular.min.js"></script> <script> angular.module('app', []) .controller('myController', function($scope, $parse) { $scope.$watch('expr', function(newVal, oldVal, s) { if(newVal !== oldVal) { var parseFun = $parse(newVal); $scope.parsedValue = parseFun(s); // 使用鏈?zhǔn)秸{(diào)用的方式 你也可以這樣寫 // $scope.parsedValue = $parse(newVal)(s); } }) }) </script> </body> </html>
補(bǔ)充:解析AngularJS表達(dá)式
盡管AngularJS會在運(yùn)行$digest循環(huán)的過程中自動(dòng)解析表達(dá)式,但有時(shí)手動(dòng)解析表達(dá)式也是非常有用的。AngularJS通過$parse這個(gè)內(nèi)部服務(wù)來進(jìn)行表達(dá)式的運(yùn)算,這個(gè)服務(wù)能夠訪問當(dāng)前所處的作用域。這個(gè)過程允許我們訪問定義在$scope上的原始JavaScript數(shù)據(jù)和函數(shù)。將$parse服務(wù)注入到控制器中,然后調(diào)用它就可以實(shí)現(xiàn)手動(dòng)解析表達(dá)式。舉例來說,如果頁面上有一個(gè)輸入框綁定到了expr變量上,如下所示:
<div ng-controller="MyController"> <input ng-model="expr" type="text" placeholder="Enter an expression" /> <h2>{{ parseValue }}</h2> </div>
我們可以在MyController中給expr這個(gè)表達(dá)式設(shè)置一個(gè)$watch并解析它:
angular.module("myApp", []) .controller('MyController', function($scope,$parse) { $scope.$watch('expr', function(newVal, oldVal, scope) { if (newVal !== oldVal) { // 用該表達(dá)式設(shè)置parseFun var parseFun = $parse(newVal); // 獲取經(jīng)過解析后表達(dá)式的值$scope.parsedValue = parseFun(scope); }}); });
以上所述是小編給大家介紹的Angularjs手動(dòng)解析表達(dá)式($parse),希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時(shí)回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
相關(guān)文章
javascript學(xué)習(xí)網(wǎng)址備忘
javascript學(xué)習(xí)網(wǎng)址備忘...2007-05-05JavaScript實(shí)現(xiàn)簡易計(jì)算器案例
這篇文章主要為大家詳細(xì)介紹了JavaScript實(shí)現(xiàn)簡易計(jì)算器案例,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下<BR>2022-07-07微信小程序?qū)崿F(xiàn)tab和swiper切換結(jié)合效果
這篇文章主要為大家詳細(xì)介紹了微信小程序?qū)崿F(xiàn)tab和swiper切換結(jié)合效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-11-11淺析JavaScript定時(shí)器setTimeout的時(shí)延問題
這篇文章主要為大家詳細(xì)介紹了JavaScript中定時(shí)器setTimeout有最小時(shí)延的相關(guān)知識,文中的示例代碼簡潔易懂,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2023-11-11基于微信小程序?qū)崿F(xiàn)人臉數(shù)量檢測的開發(fā)步驟
最近項(xiàng)目需求是統(tǒng)計(jì)當(dāng)前攝像頭中的人臉個(gè)數(shù),所以下面這篇文章主要給大家介紹了關(guān)于基于微信小程序?qū)崿F(xiàn)人臉數(shù)量檢測的相關(guān)資料,文中通過圖文介紹的非常詳細(xì),需要的朋友可以參考下2022-12-12利用Javascript開發(fā)一個(gè)二維周視圖日歷
這篇文章主要給大家介紹了關(guān)于利用Javascript如何開發(fā)一個(gè)二維周視圖日歷的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。2017-12-12