Angularjs 应用程序未打开配置的模式

Posted

技术标签:

【中文标题】Angularjs 应用程序未打开配置的模式【英文标题】:Angularjs app does not open the configured modal 【发布时间】:2019-07-28 06:06:44 【问题描述】:

我正在使用 angularjs 构建一个应用程序,我需要在其中显示一个页面,然后在用户粘贴 url 时打开一个带有详细信息的模式窗口。

路由器配置如下:

.state('main.legalentitites', 
    url: '/products/productId:string',
    views: 
        'content@': 
            templateUrl: 'app/views/productdetail.html',
            controller: 'productDetailCtrl',
        ,
    ,
)
.state('main.products.add', 
    url: '/products/productId:string/add',
    onEnter: function($state, $modal) 
        $modal
            .open(
                templateUrl: 'app/views/productModal.html',
                resolve: ,
                controller: 'ProductCtrl',
            )
            .result.then(function(result) 
                if (result) 
                    return $state.transitionTo('main.products')
                
            )
    ,
)
.$urlRouterProvider.otherwise(function($injector, $location) 
    var $state = $injector.get('$state')
    $state.go('main.home')
)

当我输入 url https://localhost:44821/products/6cbc799a-fdc8-4e4d-ac27-0a5165423641/add 时,它没有导航到页面并且模式没有打开。控制台中也没有错误。它总是转到其他配置的部分。可能是什么问题?

【问题讨论】:

如果您使用的是 ui-bootstrap 的最新版本之一,则服务名称从“$modal”更改为“$uibModal”。 我还在使用旧版本 当您输入https://localhost:44821/products/6cbc799a-fdc8-4e4d-ac27-0a5165423641 url(没有add)时,一切都按预期工作吗? @arcquim 是的,它有效 你能创建一个 Plunker 或 JSFiddle 吗? 【参考方案1】:

Documentation 说:

'/user/:id' - 匹配 '/user/bob' 或 '/user/1234!!!'甚至是“/user/”,但不是“/user”或“/user/bob/details”。第二个路径段将被捕获为参数“id”。

和:

'/user/id' - 与前面的示例相同,但使用大括号语法。

所以我建议您将 url 从“/products/productId:string/add”更改为“/products/add/productId:string”。它应该可以工作。

【讨论】:

以上是关于Angularjs 应用程序未打开配置的模式的主要内容,如果未能解决你的问题,请参考以下文章

如何在 ASP.NET MVC 中集成 AngularJS

AngularJS模态对话框表单对象在控制器中未定义

通过推送通知打开应用程序时未注册后退按钮处理程序

带有颤动的 Firebase 动态链接:深层链接 URL 未打开应用程序

使用 angularjs ui 时节点/Angularjs 应用程序未接收 JSON Web 令牌

AngularJs关于route的使用方法和配置