2016-04-22 46 views
2

我正在一個小項目上根據哪個類(對象)被激活來生成字符串。我希望它這樣有些工作:angularjs從屬性生成字符串

的(我< = 30)如果(OBJ [$ i] == isActive)字符串= 「X = 1」:字符串= 「X = 0」; echo x;

現在我有控制器,啓用和禁用類,如果對象被點擊。如何根據具有某些類的對象生成字符串?得到如下結果:x = 1 & y = 0 & z = 0 & xyz = 1。對於某些原因,它沒有更新我

var classApp = angular.module('classApp', []); 
 
classApp.controller('classCtrl', function ($scope) { 
 
\t $scope.isActive1 = false; 
 
\t $scope.isActive2 = false; 
 
\t var build = ""; 
 
\t if($scope.isActive1==true?build="x=1&":build="x=0&"); 
 
\t $scope.link = build; 
 
});
body { 
 
    background: #fff; 
 
    -webkit-font-smoothing: antialiased; 
 
    padding: 40px; 
 
    text-align: center; 
 
} 
 
.active { 
 
\t -webkit-filter: grayscale(0%); 
 
    filter: grayscale(0%); 
 
} 
 
img { 
 
\t -webkit-filter: grayscale(100%); 
 
    filter: grayscale(100%); 
 
    width: 128px; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script> 
 
<div ng-app="classApp" ng-controller="classCtrl"> 
 
    <img src="http://icons.iconarchive.com/icons/paomedia/small-n-flat/1024/sign-check-icon.png" ng-class="{'active': isActive1}" ng-click="isActive1 = !isActive1"/> 
 
    <img src="http://icons.iconarchive.com/icons/paomedia/small-n-flat/1024/sign-check-icon.png" ng-class="{'active': isActive2}" ng-click="isActive2 = !isActive2"/> 
 
    test={{link}} 
 
</div>

回答

0

你需要告訴angulajs至$範圍發生變化時,你在你的控制器只有一次設置。每次使用$ watch的概念都需要更新。

var classApp = angular.module('classApp', []); 
 
classApp.controller('classCtrl', function ($scope) { 
 
\t $scope.isActive1 = false; 
 
\t $scope.isActive2 = false; 
 
\t var build = ""; 
 
\t 
 
    $scope.$watch('isActive1', function(newValue) { 
 
     if(newValue==true?build="x=1&":build="x=0&"); 
 
\t   $scope.link = build; 
 
    }); 
 
});
body { 
 
    background: #fff; 
 
    -webkit-font-smoothing: antialiased; 
 
    padding: 40px; 
 
    text-align: center; 
 
} 
 
.active { 
 
\t -webkit-filter: grayscale(0%); 
 
    filter: grayscale(0%); 
 
} 
 
img { 
 
\t -webkit-filter: grayscale(100%); 
 
    filter: grayscale(100%); 
 
    width: 128px; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script> 
 
<div ng-app="classApp" ng-controller="classCtrl"> 
 
    <img src="http://icons.iconarchive.com/icons/paomedia/small-n-flat/1024/sign-check-icon.png" ng-class="{'active': isActive1}" ng-click="isActive1 = !isActive1"/> 
 
    <img src="http://icons.iconarchive.com/icons/paomedia/small-n-flat/1024/sign-check-icon.png" ng-class="{'active': isActive2}" ng-click="isActive2 = !isActive2"/> 
 
    test={{link}} 
 
</div>

+0

所以..我不得不做的是使用$手錶的事情嗎?哇,我想我需要再次閱讀所有的角度指南。 現在如果我正要用更多的變量替換字符串?如何添加一些東西到字符串? –

+0

是啊...ü只設置一次控制器,在那裏你稱爲控制器,控制器如何知道你的範圍值改變.... – nisar