私の奉仕の中で私はいくつかの特性を持っているという状況があります。これらのプロパティはコントローラにリンクされています。角度コントローラがサービスからの更新を読み取ることができません。何かアドバイス?
サービス:
angular.module('...')
.factory('PollServ', function PollServ($http, ...) {
var service = {
question: '',
votes: [[]]
}
...
// make http request to API
var request = $http({ ...
// once the value is retrieved, update properties
request.then(function (res) {
service.question = res.data.question;
...
}
はコントローラー:投票が適切に更新されているが、今
angular.module('...')
.controller('PollCtrl', function PollCtrl(..., PollServ) {
$scope.question = PollServ.question;
$scope.votes = PollServ.votes;
...
、質問はありません。 votes
が配列であり、question
が単なる通常の文字列であるという点を除いて、私は何もしません。私は、配列は動的に更新できることとは関係がありますが、単純な文字列ではないと考えています。
文字列を不要にすることなく、どのように動作させることができますか?
'$ scope.question = PollServ.question;のサービス – Laazo
から' request'メソッドを呼び出したことがないので、サービスを変更すると更新されません。文字列の値を代入しています - これをオブジェクトにラップするか、この値の変更を通知するために 'watch'を使う必要があります。良いアプローチは、あなたのすべての値を 'model'オブジェクトにラップすることです。そして、角は内部のプロパティの使用が更新をトリガーすることを確認します。 –
@OvidiuDolhaああ、それは本当に面白いです。ありがとう、私はそれを試してみましょう。 – Grateful