欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

AngularJS解決ng界面長表達(dá)式(ui-set)的方法分析

 更新時間:2016年11月07日 10:33:22   作者:破狼  
這篇文章主要介紹了AngularJS解決ng界面長表達(dá)式(ui-set)的方法,通過具體問題的分析并結(jié)合實(shí)例形式給出了AngularJS長表達(dá)式的相關(guān)使用技巧,需要的朋友可以參考下

本文實(shí)例講述了AngularJS解決ng界面長表達(dá)式(ui-set)的方法。分享給大家供大家參考,具體如下:

本文來自網(wǎng)友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 預(yù)先賦給一個臨時的變量, 然后在 兩個 span中只需 o.name, o.state 就行了呢? 我覺得這樣解析起來是不是快一點(diǎn).

    但是我試了, 并沒有成功. 求指點(diǎn).
    先謝了.

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

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

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

的tag.

對于實(shí)現(xiàn)這類tag,我們最好的方式則是利用ng的directive來實(shí)現(xiàn),代碼如下:

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();
     });
    }
   };
  }
]);

希望本文所述對大家AngularJS程序設(shè)計(jì)有所幫助。

相關(guān)文章

最新評論