角の初心者。私は.green
と.default
のCSSクラスを現在の.box
要素でクリックして切り替えることを試みています。 [JB Nizetの提案した後、私は偽の、今それが働いているとnullを置き換える次のコードを修正しました]この単純なAngularJS反復でHTML要素の2つのCSSクラスを切り替えるにはどうすればよいですか?
index.htmlを
<div class="container">
<div class="row">
<!-- SELECTION APP -->
<div class="col-md-4 col-md-offset-4" ng-app="Selection" ng-controller="Selection as Select">
<div class="row">
<div class="col-md-12" ng-repeat="course in Select.data">
<div class="box well clearfix "
ng-click="Select.toggleSelect(course)"
ng-class="{'green' : course.selected, 'default': !course.selected}"
>
<h3 class="courseName"><b>{{course.name}}</b>: ({{course.duration}} months) ${{course.price}}</h3>
</div>
</div>
</div>
</div>
<!-- /SELECTION APP -->
</div>
</div>
<script src="js/angular.min.js"></script>
<script src="js/app.js"></script>
<script src="js/controllers/Select.js"></script>
<script src="js/factories/DataService.js"></script>
JS/app.js
(function()
{
angular.module('Selection',[]);
})();
js/controllers/Select.js
(function()
{
angular
.module('Selection')
.controller('Selection', Selection);
Selection.$inject = ['DataService']
function Selection(DataService)
{
this.data = DataService.courseData;
this.currentClass = 'default';
this.toggleSelect = function(course)
{
if (course.selected === false)
{
course.selected = true;
}
else
{
course.selected = false;
}
}
}
})();
JS /工場/ DataService.js
(function()
{
angular.
module('Selection')
.factory('DataService', DataService);
function DataService()
{
return data = {
courseData: courseData
}
}
var courseData =
[
{
name: 'AngularJS',
duration: 1,
price: 250,
selected: false
},
{
name: 'NodeJS',
duration: 1.5,
price: 350,
selected: false
},
{
name: 'ReactJS',
duration: 2.5,
price: 500,
selected: false
}
]
})();
プレビュー:
コンソールは、構文ではエラーを報告していないと私はにできませんよ私が間違っていた場所を見つけてください。エラーが見つかった場合には、私に助けてください。どうもありがとう。
デバッガを使用してコードをステップ実行しましたか?簡単なconsole.log()ステートメントを追加しましたか?あなたはそれを自分で理解できるはずです。なぜ 'course.selected === 'null''は本当ですか?なぜ 'course.selected =!course.selected'を使わないのですか? –
私は以前にselectedプロパティをnullに設定していたので、エラーに気付かなかった。私はnullをfalseに変更し、今は動作します。ありがとう。 – anonym
コード設定にnullを設定するものは何もありません。そして、たとえあったとしても、「ヌル」と「ヌル」は全く異なる2つの事柄です。前者はヌルで、2番目の文字はn、u、l、lの文字を含むNULLではない文字列です。 –