我剛剛開始與Angular(再次)。Angular JS數據綁定
我找兩個相關問題,就以下plunker
http://plnkr.co/edit/anfQW9NcZs1WuPL8yKdJ
var app = angular.module('Designer', [])
.factory('TextModel', function() {
return {
'textAlign': 'left',
'fontFamily': 'Arial'
};
});
app.controller('TextController', function($scope, TextModel){
$scope.master = TextModel;
$scope.$watch("master",function(){
$scope.textStyles = {
'text-align': $scope.master.textAlign,
'font-family': $scope.master.fontFamily
};
}, true);
$scope.setAlignment = function(newAlignment){
$scope.master.textAlign = newAlignment;
};
$scope.setFont = function(font){
$scope.master.fontFamily = font;
};
});
在這種回答,我怎麼能應用樣式僅當前焦點輸入框,而不是兩個。
同樣,如果我然後更改一個字體爲Times和另一個爲Verdana,當我單擊時,如何將選擇框更新爲選定/聚焦的輸入框的字體。
感謝
雖然這回答了這個問題。如果有100個文字區域,它很快就會變得混亂。在這種情況下,有沒有更好的方式來動態設置當前集中的textarea上的樣式,而不是擁有。 text1styles text2styles ... text100styles – 2014-10-07 21:16:12
我同意這種方法並不是最佳的,即使它在您的蹲跳者的情況下工作。更好的解決方案是使用pub/sub模式。在Angular中,你需要編寫一個指令來監聽字體變化事件,以便它可以更新元素的樣式,如果它具有焦點。 – 2014-10-07 23:58:20