我正在嘗試創建一個篩選器,用於在瀏覽器正在調整大小並觸及媒體查詢斷點時實時轉換字符串。在angularjs過濾器中添加watch()
我只是想:
- 顯示
"string.short"
當最小寬度< = 200像素 - 顯示
"string.long"
當最小寬度> 200像素 - 使它通用和可重複使用的(不想把代碼在一個控制器)
- 不能使用指令,因爲,我會填寫標題/值/ alt屬性
到目前爲止,它在加載時工作(不調整大小),但我想添加瀏覽器調整大小檢測以適應標籤,如果用戶調整其瀏覽器。
HTML:
<input value="{{ 'string' | responsivize}}" />
過濾:
angular.module('filters.responsivize', [])
.filter('responsivize', [function() {
return function(key) {
var showShort = function() {
return Modernizr && !Modernizr.mq('only all and (min-width: 768px)');
};
//TODO: add any way to wath this in real time ?
//$rootScope.$watch(showShort, function() {});
//jQuery(window).resize(function() {});
return key.concat(showShort() ? '.short' : '.long');
};
}]);
(部分)工作的jsfiddle http://jsfiddle.net/2Q8eL/2/
感謝你的提議,對於根管鏡方法來說是個好主意。你能否詳細說明你的第二個選擇?我不明白「
」部分。 –我已經用示例更新了我的帖子。 –
取決於$ locale的過濾器怎麼樣,可以動態改變? –