根据路径动态更改ng-click功能

时间:2015-05-15 15:51:14

标签: angularjs

我有一个包含很多观点的应用。在大多数视图中,我在左侧有一个可切换的抽屉用于导航。但是,在一些视图中,我希望菜单改为后退按钮。

我正在尝试使用ng-click和数据绑定。

md-button ng-click="{{$scope.current.navBarFunction}}"

从我的路由中的属性navBarFunction动态注入ng-click函数的名称但是这不起作用,我不确定如何继续。

.when('/articles/:articleId', {
    title: 'articles.title',
    icon: 'arrow_back',
    navBarFunction: 'backButton()',
    templateUrl: 'views/articles/:articleid.html',
    controller: 'ArticlesArticleidCtrl',
    resolve: {
      loggedin: checkLoggedin
    }
  })

此外,无论如何使用当前路由在app.js中创建if语句?这会简化事情。

编辑1:

我们的控制器中有更多代码:

function navBack(pageID) {
  $location.path( '/' + pageID );
}

function buildToggler(navID) {
  var debounceFn =  $mdUtil.debounce(function(){
        $mdSidenav(navID)
          .toggle()
          .then(function () {
            $log.debug('toggle ' + navID + ' is done');
          });
      },300);
  return debounceFn;
}

$scope.toggleLeft = buildToggler('left');
$scope.navBackUsers = navBack('users');
$scope.navBackArticles = navBack('articles');
$scope.navBackClassrooms = navBack('classrooms');

1 个答案:

答案 0 :(得分:1)

如果没有看到更多代码,可能应该是:

ng-click="current.navBarFunction()"

不确定为什么路由器中的字符串值中有()或者如何在指令或控制器中设置它。看到更多代码会有所帮助