2015-01-09 56 views
3

我正在開發一個使用Angular Js框架的Web應用程序,在需要時使用HTML5和jQuery的幫助。 現在的問題是:如何攔截Angular Js中的數據綁定的末尾

我有一些字段的值取決於AJAX調用的結果。這個請求返回一個JSON,這個JSON的字段變成了許多標籤的值。

例如,在HTML代碼,我有:

<span>Data Nascita: <b><span id="patientBirthdate">{{patient.birthDate}}</span></b></span> 

而在我的控制,我有這樣的要求:

$.ajax({ 
    type: "GET", 
    url: url, 
    async: true, 
    crossDomain: true, 
    success:function(result){ 
     $scope.person = result; 

    }, 
    error: function(xhr,status,error){ 
     console.log ("error in receiving person's data"); 
    } 
}); 

此數據綁定工作正常。

問題是:我如何攔截數據綁定操作的結束({{patient.birthDate}}域的填充結束)以某種方式調用另一個JavaScript方法的字段?

我的目標是「縮短」這個字段的值,用角製成的填充之後,用jQuery插件,這種類型的呼叫:提前

$("#patientBirthdate").shorten({showChars: 15, moreText: ' >>', lessText: ' <<'}); 

感謝。

+0

$ watch可能是.. –

+0

你不需要jQuery來顯示任何東西。使用角來做它所有。一個簡單的指令和過濾器用於'縮短'並使用'$ http'作爲ajax。當使用角度工作時,擺脫jQuery思維模式 – charlietfl

+0

這是本網站上最高投票角度的帖子[「在AngularJS中思考」,如果我有jQuery背景嗎?](http://stackoverflow.com/questions/14994391/thinking-在-angularjs-IF-I-具有-A-jQuery的背景)。 – charlietfl

回答

0

http://jsfiddle.net/SQuVy/751/這裏是你可以用$watch做的事情。

每當發生更改發生對象回調被調用時,

ex。

angular.module('watchApp', []).controller('watchCtrl', function($scope) { 
    $scope.count = 0; 

    $scope.$watch('a', function() { 
     // change happened here do something 
     $scope.b=$scope.a; 

//OR you can call your method here 

     }, true); 
    }); 

我在這裏指定的值時,被改爲B。

+0

DOM操作不屬於角度控制器 – charlietfl

+0

我知道我在說'$ watch'可以用於此目的..其僅僅是一個示例 –

+0

但您有jQuery DOM操作在那裏 – charlietfl