Bri*_*ian 14 data-binding jquery twitter-bootstrap angularjs
我正在尝试创建一个简单的twitter bootstrap按钮组,允许用户选择几个选项之一(想想单选按钮).我已经达到了影响模型变化的程度,但"活动"状态没有正确设置为onclick ...除非我再次点击它?我创造了一个小提琴,基本标记如下......
<div range="justified"
model="myModel"
options="rangeOptions"></div>
<hr/>
<div range="vertical"
model="myModel"
options="rangeOptions"></div>
<hr/>
<pre>myModel:{{myModel}}</pre>
<script type="text/ng-template" id="range.tpl.html">
<div class="btn-group btn-group-{{type}}" data-toggle="buttons">
<span class="btn btn-lg btn-primary"
ng-repeat="option in options"
ng-class="{active:option.id==model.range_id}" <!-- not working?? -->
ng-click="activate(option.id)">{{option.label}}</span>
</div>
</script>
Run Code Online (Sandbox Code Playgroud)
function Main($scope) {
$scope.rangeOptions = [
{id:1,label:"Agree"},
{id:2,label:"Neutral"},
{id:3,label:"Disagree"}
];
$scope.myModel = {range_id: 2};
}
angular
.module('range', [])
.directive('range', function () {
return {
replace: true,
scope: { type:'@range', model:'=', options:'=' },
templateUrl:'range.tpl.html',
controller: function ($scope,$element,$attrs) {
$scope.activate = function (option) {
$event.preventDefault();
};
}
};
});
Run Code Online (Sandbox Code Playgroud)
btm*_*tm1 27
你不需要90%的bootstrap js来实现这样的工作你需要做的就是创建一个按钮组并附加一些ng-click和ng-class:
function myscope($scope) {
$scope.button = 'red';
}
<div class="btn-group">
<a href="javascript:void(0)" ng-click="button = 'red'" ng-class="{ 'active' : button == 'red' }" class="btn">red</a>
<a href="javascript:void(0)" ng-click="button = 'blue'" ng-class="{ 'active' : button == 'blue' }" class="btn">blue</a>
<a href="javascript:void(0)" ng-click="button = 'green'" ng-class="{ 'active' : button == 'green' }" class="btn">green</a>
</div>
Run Code Online (Sandbox Code Playgroud)
这里有一些关于使您的按钮组作为单选按钮工作的其他信息.
http://getbootstrap.com/javascript/#buttons
使用该信息,我分叉你的小提琴,这似乎是有效的.
更改只是将span元素切换为标签/输入.
<div class="btn-group btn-group-{{type}}" data-toggle="buttons">
<label class="btn btn-lg btn-primary"
ng-repeat="option in options"
ng-class="{active:option.id==model.range_id}"
ng-click="activate(option.id)"><input type="radio"></input>{{option.label}}</label>
</div>
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
25178 次 |
最近记录: |