日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

解决ng界面长表达式(ui-set)

發布時間:2025/3/15 编程问答 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 解决ng界面长表达式(ui-set) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

本文來自網友sun shine的問題,問題如下:

您好, 我想求教一個問題.在$scope中我的對象名字寫的特別深, 在 html中我又多次用到了同一個對象, 對不對在 html中讓它綁定到一個臨時變量呢?比如:$scope.this.is.a.very.deep.obj = {'name': 'xxx','state': 'active'};在 模板中,{{this.is.a.very.deep.obj.name}}{{this.is.a.very.deep.obj.state}}類似于這種, 我能否把 this.is.a.very.deep.obj 預先賦給一個臨時的變量, 然后在 兩個 span中只需 o.name, o.state 就行了呢? 我覺得這樣解析起來是不是快一點.但是我試了, 并沒有成功. 求指點.先謝了.

在這里首先需要說明的是ng界面的所有引用都需要在$scope這個viewmodel(ui和view的膠水層),所以如果我們希望能夠把表達式變得更可讀,更友好,那么我們就必須在$scope上創建這個變量。

再則對于ng其使用使用的一堆的$watch,實現臟檢查,如果你理解這些了,那么我們就可以很容易的實現一套如spring的

<c:set var="xxx" expression="xxx" />

的tag.

對于實現這類tag,我們最好的方式則是利用ng的directive來實現,代碼如下:

angular.module("greengerong.ui.tag", []).directive("uiSet", [function() {return {restrict: "EA",link: function(scope, elm, iAttrs) {scope.$watch(iAttrs.expression, function(val) {scope[iAttrs.var] = val;var apply = !scope.$$phase ? scope.$apply : angular.noop;apply();});}};}]);

demo效果請移步jsbin demo;

轉載于:https://www.cnblogs.com/whitewolf/p/4000643.html

總結

以上是生活随笔為你收集整理的解决ng界面长表达式(ui-set)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。