2015-11-04 74 views
0

在角材料fullstack約曼發電機採用了棱角分明材料,我結合了toast方式來處理在控制了大量的外來代碼

var last = { 
    bottom: false, 
    top: true, 
    left: false, 
    right: true 
}; 

$scope.toastPosition = angular.extend({},last); 

function sanitizePosition() { 
    var current = $scope.toastPosition; 
    if (current.bottom && last.top) current.top = false; 
    if (current.top && last.bottom) current.bottom = false; 
    if (current.right && last.left) current.left = false; 
    if (current.left && last.right) current.right = false; 
    last = angular.extend({},current); 
} 

$scope.getToastPosition = function() { 
    sanitizePosition(); 
    return Object.keys($scope.toastPosition) 
    .filter(function(pos) { return $scope.toastPosition[pos]; }) 
    .join(' '); 
}; 

var showSimpleToast = function() { 
    $mdToast.show(
    $mdToast.simple() 
     .content('Please enter a valid stock name.') 
     .position($scope.getToastPosition()) 
     .hideDelay(3000) 
); 
}; 

我能做出來「獲取驗證碼的方式'?它值得實施到服務中嗎?我根本不希望它佔用我的控制器中的太多空間。

+0

將您的吐司邏輯移至工廠。 – levi

+0

好,無論是爲了自己的目的而包裝的指令,還是在工廠中擁有邏輯,並從指令或控制器調用以加載烤麪包......取決於你將如何使用它以及在哪裏......我將它作爲指令使用,因爲它操縱DOM並從工廠 –

+1

調用添加刪除功能,這是一個很有見地的問題。很多可能的答案。 – cgTag

回答

0

對不起,如果我誤解了你的問題,但你在找這個嗎?

$mdToast.show(
    $mdToast.simple() 
    .content('Please enter a valid stock name.') 
    .position('top right') 
    .hideDelay(3000); 
); 

他們擁有的額外代碼只是讓您無法檢查兩個相對的複選框或缺少方向,例如, top bottom失去bottom並獲得默認的方向。

相關問題