我正在使用Ionic应用程序,并且完全使用工作状态处理左侧菜单。
这是菜单代码:
<ion-side-menu side="left">
<ion-header-bar class="bar-royal">
<h1 class="title">Example</h1>
</ion-header-bar>
<ion-content>
<ion-list>
<ion-item menu-close ng-repeat="test in data"
ng-switch="test.ID"
ng-href="{{test.ID == 0 ? '#/app/test' : '#/app/details/' + test.iID}}"
class="item item-icon-right">
<div ng-switch-when="0"><span>{{test.Name}}</span></div>
<div ng-switch-default><span>{{test.Name}}</span>
</div>
</ion-item>
</ion-list>
</ion-content>
</ion-side-menu>
非常基本的设置。
和具有状态的代码(coffescript):
angular.module('hgApp', ['ionic'])
.config [
'$stateProvider'
'$urlRouterProvider'
($stateProvider, $urlRouterProvider) ->
$stateProvider.state('app',
url: '/app'
abstract: true
templateUrl: './sections/menu/menu.html'
controller: 'menuList'
).state('app.details',
url: '/details/:testID'
views:
'menuContent':
templateUrl: './sections/details/testDetails.html'
controller: 'testDetails'
现在,我的问题在这里:
我可以从左侧菜单的列表或我主页上的链接导航到app/details/{testID}
。
只有当我使用主页上的链接到达页面时,我才需要在app/details/{testID}
的顶栏添加一个后退按钮,但如果我从左侧菜单列表到达那里则不行。
菜单列表和主页上的链接都用作href "#/app/details/{{test.ID}}"
我该怎么做?我真的不知道。
提前感谢您的帮助。
答案 0 :(得分:1)
嗨我有类似的情况,如果表格是可编辑的,我必须隐藏按钮,所以我做了以下
<ion-nav-back-button ng-show="!$root.hideBack"></ion-nav-back-button>
Controller.js
$scope.makeEditable = function () {
$scope.isEditable = true;
$rootScope.hideBack = true;
};
因此,如果字段可编辑,则后退按钮将消失。我希望这有任何帮助。
另一个例子是:
在致电$ionicHistory
之前,在您的控制器中使用$state.go('app.details')
。我猜你在主页上有不同的控制器,你使用$stage.go
进入详情页面?所以代码应该看起来像
app.controller('HomeCtrl', ["$scope", "$ionicHistory", function($scope, $ionicHistory) {
$scope.goToDetails = function() {
$ionicHistory.nextViewOptions({
disableBack: true
});
$state.go('app.details');
}
}]);
HTML
<button ng-click="goToDetails()"></button>
答案 1 :(得分:0)
顺便提出有趣的问题
我认为你可以使用$ broadcast
完成你想要的行为基本上你有一个函数,当你点击链接时会调用它来告诉testDetails控制器'嘿,我们来自一个链接,做你的东西'
testDetails控制器将期待此调用并相应地显示按钮
原始代码:
app.controller('AnyCtrl',
function AnyCtrl ($scope) {
// Call this code on link click
$scope.$broadcast('fromlink', 'Some data');
});
app.controller('testDetails',
function testDetails ($scope) {
$scope.$on('fromlink', function (event, data) {
// Add button. Profit
});
});
您可以在这里找到涵盖所有可能性的小文章的链接
https://toddmotto.com/all-about-angulars-emit-broadcast-on-publish-subscribing/