javascript - Button ng-click dont open new page defined on routes -
i'm trying open view (html) clicking in button. button open file declare in route file.
i have organizationview button when click on it opens new page of configurations 2 tasbs (organizationpermissionconfig.html). in last page have 2 tabs , in each tab have table can edit properties of row clicking on button, don't know why button isn't opening new page.
app.routes.js
.state('app.organizationpermissionssettings', { url: '/organization/permissionsettings/', templateurl: 'app/components/organizations/organizationpermissionsconfig.html', resolve: { deps: ['$oclazyload', function ($oclazyload) { return $oclazyload.load([ { insertbefore: '#load_styles_before', files: ['assets/libs/chosen_v1.4.0/chosen.min.css', 'assets/libs/datatables/css/jquery.datatables.css'] }, { serie: true, files: [ 'assets/libs/chosen_v1.4.0/chosen.jquery.min.js', 'assets/libs/datatables/js/jquery.datatables.js', 'assets/libs/bootstrap-datatables/bootstrap-datatables.js' ]}]).then(function () { return $oclazyload.load([ { files: ['app/components/organizations/organizationscontroller.js', 'app/shared/layout/utils.js'] } ]) }); }] }, data: { title: 'settings', } }) .state('app.organization.graphs', { url: '/graphs', templateurl: 'app/components/organizations/organizationgraphsview.html', resolve: { deps: ['$oclazyload', function ($oclazyload) { return $oclazyload.load([ { insertbefore: '#load_styles_before', files: ['assets/libs/chosen_v1.4.0/chosen.min.css', 'assets/libs/datatables/css/jquery.datatables.css'] }, { serie: true, files: [ 'assets/libs/chosen_v1.4.0/chosen.jquery.min.js', 'assets/libs/datatables/js/jquery.datatables.js', 'assets/libs/bootstrap-datatables/bootstrap-datatables.js' ]}]).then(function () { return $oclazyload.load([ { files: ['app/components/organizations/organizationscontroller.js'] } ]) }); }] }, data: { title: 'organization graphs', } }) .state('app.organization.views', { url: '/views', templateurl: 'app/components/organizations/organizationviewsview.html', resolve: { deps: ['$oclazyload', function ($oclazyload) { return $oclazyload.load([ { insertbefore: '#load_styles_before', files: ['assets/libs/chosen_v1.4.0/chosen.min.css', 'assets/libs/datatables/css/jquery.datatables.css'] }, { serie: true, files: [ 'assets/libs/chosen_v1.4.0/chosen.jquery.min.js', 'assets/libs/datatables/js/jquery.datatables.js', 'assets/libs/bootstrap-datatables/bootstrap-datatables.js' ]}]).then(function () { return $oclazyload.load([ { files: ['app/components/organizations/organizationscontroller.js'] } ]) }); }] }, data: { title: 'organization views', } }) organizationcontroller.js
app.controller('organizationscontroller',['$rootscope', '$scope', '$modal', 'helperservice', 'authservice', '$state', '$http', function ($rootscope, $scope, $modal, helperservice, authservice, $state, $http) { var controllerscope = $scope; controllerscope.organizationsdata = {}; controllerscope.organizationsdata.ajax = {url:'/api/organizations/', datasrc:''}; controllerscope.organizationsdata.ajax.beforesend = function (xhr) { xhr.setrequestheader("authorization", authservice.authtoken()); } controllerscope.organizationsdata.columns = [ {"data":null,"render":function(data) { return '<a href="/#/organization/'+data.id+'">'+data.data.name+'</a>'; }}, {"data":"domain","defaultcontent":""}, {"data":null, "orderable":false, "render":function(data){ return '<button class="btn btn-default btn-sm" style="margin-right:5px;" onclick="angular.element(this).scope().openorganizationpermissionssettings(\''+data.id+'\')"><i class="fa fa-wrench"></i></button>' +'<button class="btn btn-default btn-sm" style="margin-right:5px; " onclick=\'angular.element(this).scope().openneworganizationmodal('+json.stringify(data)+')\'><i class="fa fa-pencil"></i></button>' +'<button class="btn btn-default btn-sm" onclick="angular.element(this).scope().deleteorganization(\''+data.id+'\')"><i class="fa fa-trash"></i></button>'; }}]; controllerscope.deleteorganization = function (organizationid) { helperservice.deleteitem(organizationid, 'organization', '/api/organizations/'); }; controllerscope.openneworganizationmodal = function (organization) { var modalinstance = $modal.open({ templateurl : 'neworganizationmodalcontent.html', controller: 'organizationsmodalinstancecontroller', resolve: {organization:function () {return organization}}, }); } controllerscope.openorganizationpermissionssettings = function (organizationid) { $state.go('app.organizationpermissionssettings'); }; }]); app.controller('organizationspermissionssettingscontroller',['$rootscope', '$scope', '$modal', 'helperservice', 'authservice', '$state', '$http', function ($rootscope, $scope, $modal, helperservice, authservice, $state, $http) { var controllerscope = $scope; controllerscope.organizationgroups = []; $http.get('/api/organization_permissions_groups').success(function (data) { console.log("data ",data); controllerscope.organizationgroups = data; }); controllerscope.openorganizationpermissionssettings = function (organizationid) { $state.go('app.organizationpermissionssettings'); }; }]); app.controller('organizationgraphscontroller',['$rootscope', '$scope', '$modalinstance', 'helperservice', '$http', function ($rootscope, $scope, $modalinstance, helperservice, $http) { var controllerscope = $scope; controllerscope.organizationgroup = []; console.log("graphsmodalinstancecontroller organization "+$rootscope.organization.id); $http.get('/api/organization_permissions_groups/graphs/'+$rootscope.organization.id).success(function (data) { controllerscope.organizationgroup = data; }); $scope.cancel = function () { $modalinstance.dismiss(); }; } ]); app.controller('organizationviewscontroller',['$rootscope', '$scope', '$modalinstance', 'helperservice', '$http', function ($rootscope, $scope, $modalinstance, helperservice, $http) { var controllerscope = $scope; controllerscope.organizationgroup = []; $http.get('/api/organization_permissions_groups/views/'+$rootscope.organization.id).success(function (data) { controllerscope.organizationgroup = data; }); $scope.cancel = function () { $modalinstance.dismiss(); }; }]); organizationpermissionsconfig.html
<td><button class="btn btn-default btn-sm" ng-click="app.organization.graphs"><i class="fa fa-pencil"></i></button></td> <td><button class="btn btn-default btn-sm" ng-click="app.organization.views"><i class="fa fa-pencil"></i></button></td>
this syntax wrong:
ng-click="app.organization.graphs" you need inject $state inside controller, define function inside controller e.g. :
$scope.navigatetographs = function() { $state.go('app.organization.graphs'); } and bind ng-click function:
ng-click="navigatetographs()" or can use plain html doing that:
<a ui-sref="app.organization.graphs">navigate graphs</a> i hope helps
Comments
Post a Comment