$ http応答に基づいてクリックしたボタンの色を変更する方法を教えてください。私はディレクティブを使うべきかどうか。提案してください。
2
A
答えて
2
$scope.buttoncolor
というスコープ変数を作成し、$http
レスポンスを取得する際に必要に応じて設定してください。
app.controller('myCtrl', function($scope, $http) {
...
...
$http.get("welcome.htm")
.then(function(response) {
$scope.buttoncolor = response.data.buttoncolor;
});
});
とあなたのhtmlで、私はこのplunkerを作成しましたng-style
<button ng-style="{'background-color': buttoncolor }">button</button>
EDIT
を使用して、ボタンの色を設定します。この例では
0
ルック:
angular.module('app', []).controller('parentCtrl1', function($scope, $http) {
$scope.makeRequest = function(event) {
var d = angular.toJson(model);
return $http.get('file.json');
};
}).controller('parentCtrl2', function($scope, $http) {
$scope.makeRequest = function(event) {
return $http.get('/not/an/api/call');
};
}).directive('colorBtn', function($log) {
return {
replace: true,
link: onLink,
template: '<button ng-click="request($event)">Request</button>',
scope: {
onClick: '&clickcb'
}
}
function onLink(scope, el, attrs) {
scope.request = function($e) {
el.removeClass('error').removeClass('success');
if (scope.onClick !== undefined) {
scope.onClick({
event: $e
})
.then(success, error);
}
};
function success(response) {
el.addClass('success');
}
function error(response) {
el.addClass('error');
}
}
});
使用法:
<div class="parent-1" ng-controller="parentCtrl1">
<color-btn clickcb="makeRequest(event)"></color-btn>
</div>
<div class="parent-2" ng-controller="parentCtrl2">
<color-btn clickcb="makeRequest(event)"></color-btn>
</div>
<style type="text/css">
.error { background-color: red; color: white; }
.success { background-color: green; color: white; }
</style>
の作業plunker:https://embed.plnkr.co/mvpKeGBvdKKnil3QeWuf/
関連する問題
- 1. HTTPリクエストの応答に基づいてスイッチボタンの色を変更します
- 2. 列の値に基づいて行の色を変更してください
- 3. 値に基づいてガントチャットのバーの色を変更してください
- 4. に基づいてリンクの色を変更してください<spans>
- 5. 値に基づいてバーの色を変更してください
- 6. 値に基づいてGoogleヒートマップポイントの色を変更してください
- 7. ブートストラップデータシート:値に基づいてセルの色を変更してください
- 8. Yiiハイチャート拡張 - 値に基づいて色を変更してください
- 9. 昇華 - ビルドシステムに基づいて背景色を変更してください
- 10. 値に基づいてボタンCSSを変更してください
- 11. ドロップダウンメニューに基づいてDOMを変更してください
- 12. URLに基づいてテーマを変更してください
- 13. http応答に基づくアラート頻度の変更
- 14. SwiftのHTTP画像応答に基づいてUIImageViewのサイズを変更
- 15. 背景に応じて色を変更してください
- 16. C#Owinの応答タイプをコードからトークンに変更してください
- 17. Sencha Architect 4のボタンの色を変更してください
- 18. DT - Shiny - Rを使用して他の列に基づいて行の色を変更してください
- 19. 別のフォームからボタンの色を変更してください
- 20. 更新されたレコードに基づいて背景色を変更してください
- 21. グループの列に基づいてグループのパスワードを変更してください
- 22. HTTP応答に基づく再試行
- 23. TextViewの色を変更してから変更してください。
- 24. Woocommerceのデフォルトの支払いゲートウェイを変更するに基づいてボタンをクリックしてください
- 25. リジッドボディの速度に基づいてオーディオピッチを変更してください
- 26. パネルのレイアウトに基づいてdrupalテーマを変更してください
- 27. Wordpressのページテンプレートに基づいてナビを変更してください
- 28. Slim 3のURIパスに基づいてルートファイルを変更してください
- 29. コンボの値に基づいて入力を変更してください
- 30. 本文のクラスに基づいてdivクラスを変更してください
はい、あなたはディレクティブを使用する必要があります。 – Skaparate
@Skaparateしかし、http http応答を取得する前に、指令が実行されています。それを制限する方法を教えてください。 – Sairam
指令が要求していますか?ワークフローとは何ですか? – Skaparate