javascript - Angular View 未加载,但 Controller 正在加载

标签 javascript angularjs url-routing angularjs-routing angularjs-controller

我在 Angular 中为几个 View 定义了路由,一个是默认的“票证”,另一个是编辑 View “票证”。由于某种原因,当我将“编辑”编码为网址时,票证路线可以正常打开。如果我使用 ng-click 编写“编辑”链接以在 Controller 上运行方法并更改位置(即 $location.path('/ticket/2')),它会加载正确的 Controller “TicketController”,但永远不会似乎正在加载 View 。事实上,加载正确的 Controller ,然后加载默认 Controller 。

在下面的 Plunker 中,您将看到每个详细信息项的两个编辑链接,“编辑”是带有 href 集的 URL(工作正常),另一个“编辑 2”使用 ng-click 指令。

http://plnkr.co/edit/aY7fSvVJCIaVYnCHXcq6?p=preview

(function () {
    var app = angular.module('SimpleTicket', ['ngRoute']);

    app.config(function ($httpProvider, $routeProvider) {
        $routeProvider.
            when('/ticket/:ticketId',
                {
                    templateUrl: 'ticket.html',
                    controller: 'TicketController as vm'
                }).
            when('/', {
                templateUrl: 'tickets.html',
                controller: 'TicketsController as vm'
            }).
            otherwise({
                redirectTo: '/'
            });

    });

    var TicketController = function ($scope, $log, $routeParams, $location) {
        var vm = this;
        $log.log('TicketController');
        var saveTicket = function () {
          $log.log('Item saved')
          $location.path('/');
        };

        vm.saveTicket = saveTicket;

        vm.ticket = {TicketId:2,Title:'Ticket 2',Body:'Body 2'};

    };
    app.controller("TicketController", TicketController);

    var TicketsController = function ($location, $log) {
        var vm = this;
        $log.log('TicketsController');

        var editTicket = function () {
            $log.log('editTicket');
            $location.path('/ticket/2');
        };
        vm.editTicket = editTicket;

        vm.tickets = [{TicketId:1,Title:'Ticket 1',Body:'Body 1'},
            {TicketId:2,Title:'Ticket 2',Body:'Body 2'}];

    };

    app.controller("TicketsController", TicketsController);



}());

最佳答案

只需删除 href="#"href=""来自tickets.html

Working Plunkr

关于javascript - Angular View 未加载,但 Controller 正在加载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24558874/

相关文章:

web-config - StackExchange MiniProfiler UrlRoutingModules 没有实现 IHttpHandlerFactory

asp.net - 使用 ASP.NET Web 表单和路由处理返回 URL

javascript - 通过javascript打开一个新窗口

javascript - 如何让 Chrome 扩展在页面加载时自动点击按钮?

javascript - Webpack 输出文件的用途是什么?

javascript - 如果它具有表单元素,如何防止 Bootstrap 下拉菜单切换回来

ruby-on-rails - 如何使来自 Rails 3 引擎的路由可用于主机应用程序?

javascript - 如果选中,如何从复选框中获取文本()?

javascript - img 加载事件未触发

javascript - 在 PHP 中为 AngularJS 生成 json 数组时出现问题