2017-10-25 7 views
1

私はpromiseメソッドからrxjsを使用してデータを取得し、成功したらそれをサブスクライブして自分のスコープに渡しています。rxjsとangularを使ってデータをテンプレートにバインドする方法1.6

私のスコープに添付されたレスポンスオブジェクトを見ることができますが、UIではマップされません。

これは私が試みたものです。

インデックスHTML:

<html> 

<head></head> 


<body> 

<my-component></my-component> 

    <script src="rx.lite.js"></script> 
    <script src="angular.min.js"></script> 
    <script src="rx.angular.js"></script> 
    <script src="app.js"></script> 
    <script src="service.js"></script> 
    <script src="component.js"></script> 

</body> 


</html> 

app.js:

(function() { 
    'use strict'; 
    angular.module('app', ['rx']); 
})(); 

service.js:

component.js:

;(function (undefined) { 
    'use strict'; 
    angular.module('app').component('myComponent', { 
     templateUrl: "myComponent.tpl.html", 
     controller: ['myService', 'rx', Ctrl] 
    }); 

    function Ctrl(myService, rx) { 

     var $ctrl = this; 

     myService.httpReq({ url: ' http://localhost:3000/posts/1', method: 'GET'}) 
     .subscribe(function(val) { 
      $ctrl.list = val; 
     }.bind(this)); 

    } 

}.call(this)); 

myComponent.tpl.html:

<div ng-if="$ctrl.list">{{$ctrl.list}}</div> 

答えて

2

あなたは$の範囲は$(ただしわからない)サイクルを消化するの外に変更されたため)(適用$を呼び出す必要があります。

+0

safeApplyメソッドはrx.angular.jsまたは$ scope。$ applyから動作させました。ありがとう –

関連する問題