在复选框打勾时显示下拉菜单
Display dropdown on tick of checkbox
// 我已经编写了 java 代码来从 mongo-db 中获取数据。我需要做的是勾选复选框按钮,我必须使用 angular-js 和 bootstrap 在下拉菜单中显示这些数据。执行这些代码后没有任何反应。
.html page
<div ng-controller="release">
<div class="col-md-2 col-centered col-fixed">
<label for="cloneRelease" translate="release.form.cloneRelease">CloneRelease</label>
</div>
<div>
<input type="checkbox" ng-model="ticked">
<div class="dropdown-menu" ng-repeat="release in releaseName" ng-show="ticked">{{release.name}}</div>
</div>
</div>
controller.js
releaseApp.controller('release', function($scope, $location, $http, ReleaseNameService){
$scope.releaseName = [];
init();
function init(){
ReleaseNameService.getReleaseName().then(function(data){
$scope.releaseName = data;});
console.log('inside controller: '+$scope.releaseName);
}
});
service.js
releaseApp.factory('ReleaseNameService', function($http){
var releaseName = [];
var factory = {};
factory.getReleaseName = function(){
return $http.get('release/fetchAllReleaseDetails').then(function(response){
releaseName = response.data;
console.log('inside service method'+ releaseName);
return releaseName;
});
};factory;
});
您可以进行 REST 调用以从 java 函数中获取数据并将其存储在 scope.Then 您可以使用 ng-repeat 在下拉列表中显示数据。
这里有一篇关于如何操作的非常好的文章。
很简单,你需要用ng-model绑定checkbox:
<input type="checkbox" ng-model="ticked">
如果勾选 $scope.ticked
return true
,否则 return false
。如果为 true 显示数据,如果为 false 则隐藏它(with ng-show
)
这是一个没有 css ofc 的 jsFiddle 示例。
http://jsfiddle.net/RLQhh/2282/
更新:
正在使用服务重新创建案例。
service.js
app.factory('dataService', function ($http) {
var dataObject= {
async: function () {
var promise = $http.get('data/').then(function (response) {
return response;
});
return promise;
}
};
return dataObject;
})
controller.js
$scope.dataTest = [];
$scope.ticketed = false;
var getData = function(){
dataService.async().then(function (d) {
$scope.dataTest = d.data;
});
}
getData();
html
<input type="checkbox" ng-model="ticketed">
<div ng-show="ticketed" ng-repeat="dat in dataTest">
{{dat.name}}
</div>
...这是测试用例,因此它应该适用于您的
// 我已经编写了 java 代码来从 mongo-db 中获取数据。我需要做的是勾选复选框按钮,我必须使用 angular-js 和 bootstrap 在下拉菜单中显示这些数据。执行这些代码后没有任何反应。
.html page
<div ng-controller="release">
<div class="col-md-2 col-centered col-fixed">
<label for="cloneRelease" translate="release.form.cloneRelease">CloneRelease</label>
</div>
<div>
<input type="checkbox" ng-model="ticked">
<div class="dropdown-menu" ng-repeat="release in releaseName" ng-show="ticked">{{release.name}}</div>
</div>
</div>
controller.js
releaseApp.controller('release', function($scope, $location, $http, ReleaseNameService){
$scope.releaseName = [];
init();
function init(){
ReleaseNameService.getReleaseName().then(function(data){
$scope.releaseName = data;});
console.log('inside controller: '+$scope.releaseName);
}
});
service.js
releaseApp.factory('ReleaseNameService', function($http){
var releaseName = [];
var factory = {};
factory.getReleaseName = function(){
return $http.get('release/fetchAllReleaseDetails').then(function(response){
releaseName = response.data;
console.log('inside service method'+ releaseName);
return releaseName;
});
};factory;
});
您可以进行 REST 调用以从 java 函数中获取数据并将其存储在 scope.Then 您可以使用 ng-repeat 在下拉列表中显示数据。
这里有一篇关于如何操作的非常好的文章。
很简单,你需要用ng-model绑定checkbox:
<input type="checkbox" ng-model="ticked">
如果勾选 $scope.ticked
return true
,否则 return false
。如果为 true 显示数据,如果为 false 则隐藏它(with ng-show
)
这是一个没有 css ofc 的 jsFiddle 示例。 http://jsfiddle.net/RLQhh/2282/
更新:
正在使用服务重新创建案例。
service.js
app.factory('dataService', function ($http) {
var dataObject= {
async: function () {
var promise = $http.get('data/').then(function (response) {
return response;
});
return promise;
}
};
return dataObject;
})
controller.js
$scope.dataTest = [];
$scope.ticketed = false;
var getData = function(){
dataService.async().then(function (d) {
$scope.dataTest = d.data;
});
}
getData();
html
<input type="checkbox" ng-model="ticketed">
<div ng-show="ticketed" ng-repeat="dat in dataTest">
{{dat.name}}
</div>
...这是测试用例,因此它应该适用于您的