AngularJS无法生成动态菜单
AngularJS failed to generate dynamic menu
我正在尝试使用angularJS构建动态菜单,不幸的是它不起作用,我不知道为什么。有什么想法吗?
这个想法是:我将循环访问当前控制器实例的菜单项集合。项的 name 属性将显示为 menuItem 名称,menuItem 的 path 属性将作为参数传递到 nagivate() 函数中。
var clientParams = {
appKey: "....."
, appSecret: "....."
};
var app = angular.module("helloKinveyApp", ["ngRoute", "kinvey"]);
app.config(["$routeProvider", function($rootProvider) {
$rootProvider
.when("/", {
controller: "loginController"
, templateUrl: "app/partials/login.html" })
.when("/partials/password_reset", {
controller: "resetPasswordController"
, templateUrl: "app/partials/password_reset.html" })
.when("/partials/sign_up", {
controller: "signupController"
, templateUrl: "app/partials/sign_up.html" })
.when("/partials/logged_in", {
controller: "loggedInController"
, tempalteUrl: "app/partials/logged_in.html" })
.otherwise({ redirectTo: "/"});
}]);
app.run(["$location", "$kinvey", "$rootScope", function($location, $kinvey, $rootScope) {
var promise = $kinvey.init({
appKey: clientParams.appKey
, appSecret: clientParams.appSecret
});
promise.then(function() {
console.log("Kinvey init with success");
determineBehavior($location, $kinvey, $rootScope);
}, function(errorCallback) {
console.log("Kinvey init with error: " + JSON.stringify(errorCallback));
determineBehavior($location, $kinvey, $rootScope);
});
}]);
function determineBehavior($location, $kinvey, $rootScope) {
var activeUser = $kinvey.getActiveUser();
console.log("$location.$$url: " + $location.$$url);
if (activeUser != null) {
console.log("activeUser not null, determine behavior");
if ($location.$$url != "/partials/logged-in")
$location.path("/partials/logged-in");
}
else {
console.log("activeUser null redirecting");
if ($location.$$url != "/partials/login")
$location.path("/partials/login");
}
}
'use strict';
app.controller("loginController", function($scope, $kinvey, $location) {
$scope.menuItems = [
{name: "Pricing", path: "#"}
, {name: "Customers", path: "#"}
, {name: "Help", path:"#"}
, {name: "Sign up", path: "#"}
];
$scope.signin = function($scope, $kinvey, $location) {
alert("signin()");
};
$scope.signup = function($scope, $kinvey, $location) {
alert("signup()");
};
$scope.forgotPassword = function($scope, $kinvey, $location) {
alert("forgotPassword");
}
$scope.navigate = function (path2Navigate) {
alert(path2Navigate);
}
});
<div class="col-xs-12 col-sm-12 col-sm-offset-3 col-md-8 col-md-offset-3">
<h3>Welcome back</h3>
<br><br>
<form class="form-horizontal" role="form">
<div class="form-group">
<div class="col-xs-2 col-sm-2 col-md-2">
<label class="control-label" for="userName">User Name</label>
</div>
<div class="col-xs-6 col-sm-6 col-md-6">
<input type="text" class="form-control" id="userName" placeholder="Enter user name">
</div>
</div>
<div class="form-group">
<div class="col-xs-2 col-sm-2 col-md-2">
<label class="control-label" for="password">Password</label>
</div>
<div class="col-xs-6 col-sm-6 col-md-6">
<input type="password" class="form-control" id="password" placeholder="Enter password">
</div>
</div>
<div class="form-group">
<div class="col-xs-6 col-sm-6 col-sm-offset-2 col-md-6">
<div class="checkbox">
<label>
<input type="checkbox" value="">Remember me?
</label>
</div>
</div>
</div>
<div class="form-group">
<div class="col-xs-2 col-sm-2 col-sm-offset-2 col-md-2">
<button type="submit" class="btn btn-primary" data-ng-click="signin()">Sign in</button>
</div>
<div class="col-xs-3 col-sm-3 col-md-3 pull-left">
<button type="button" class="btn btn-link" data-ng-click="forgotPassword()">Forgot my password?</button>
</div>
</div>
</form>
</div>
您在<ul>
标签上使用 ng-repeat,这将为菜单数组中的每个项目生成一个<ul>
。在<li>
上使用它,以便每个菜单项都是菜单项,而不是空菜单。
您也不需要将item.path
包装在{{}}
中。当你开始使用角度时,这是一个常见的错误。将其更改为data-ng-click="navigate(item.Path)"
我也没有看到您在HTML中的任何地方使用登录控制器。试试<header class="container" ng-controller="loginController">
相关文章:
- Javascript+动态菜单+当前链接样式(CSS)+基于PHP的网站
- 具有实体化功能的动态菜单
- 如何使用CSS和JavaScript构建动态菜单
- 如何设计动态菜单
- json动态菜单和路由
- 包括使用JavaScript的动态菜单
- 如何在 xaml 中使用打字稿实现动态菜单
- 带有角度的动态菜单栏
- AngularJS无法生成动态菜单
- 动态菜单的交替颜色
- 带UL和LI引导程序的动态菜单
- 阵列动态菜单逻辑
- CKEditor中RichCombo框的动态菜单
- Ajax的动态菜单
- 如何将数据库中的动态菜单项放入MasterLayout.cshtml中
- 如何使用外部Json文件和javascript和HTML制作动态菜单栏
- 如何使用AngularJS创建基于角色的动态菜单
- 使用Angularjs基于角色的动态菜单
- 动态菜单的Ajax调用适用于first
- 我试着用JavaScript在HTML网页上创建一个动态菜单,但总是遇到麻烦