当前位置: 首页 > 面试题库 >

用ngroute传递参数

姚航
2023-03-14
问题内容

这是我的

angularroute.html

<html xmlns="http://www.w3.org/1999/xhtml" ng-app="AngularApp">
<head>
    <title></title>
    <script src="angular.js"></script>
    <script src="angular-route.js"></script>
    <script type="text/javascript">

        var AngApp = angular.module('AngularApp', ['ngRoute']);
        AngApp.config(function ($routeProvider) {
            $routeProvider
                .when('/Route1/:ID', {
                    templateUrl:'Route1.html',
                    controller:'Route1'

                })
                .when('/Route2', {
                    templateUrl: 'Route2.html',
                    controller:'Route2'
                })

                .otherwise({
                    redirectTo: '/'
                });
        });

    </script>

            </head>
            <body>

                <p>Routing Explained</p>
                <a href="#Route1/100">Route1</a><br>
                <a href="#Route2">Route2</a>
                <div ng-view>

                </div>

                <script src="Route.js"></script>


            </body>
            </html>

Route.js文件包含。

angular.module('Route1').controller('Route1', function ($scope, $routeParams) {
    $scope.ID = $routeParams.ID;
});

angular.module('Route2').controller('Route2', function () {
});

Route1.html

<html xmlns="http://www.w3.org/1999/xhtml" ng-app="Route1">
<head>
    <title></title>

</head>
<body ng-controller="Route1">


    {{ID}}

    {{4+10}}

</body>
</html>

问题是它加载了页面,但我无法在route1.html上接收到获取参数值,表达式也未得到求值。可能是什么问题呢?谢谢。


问题答案:

从路线模板中删除不需要的所有内容。只需要您在模板正文中添加的内容。

这将包含在您在路线中配置的控制器的ng-view中。这是部分而不是完整的html文件。

另外,您的route.js代码不正确。您可以创建一个模块,angular.module('route', []).controller('route1Controller', function(){...})并将其用作应用程序中的依赖项。

没有像在括号中那样,您route.js将获得一个已经定义的模块。

请在下面或此小提琴中查看更新后的代码。

var AngApp = angular.module('AngularApp', ['ngRoute'])

    .controller('Route1Controller', Route1Controller)

    .controller('Route2Controller', Route2Controller);



AngApp.config(function ($routeProvider) {

    $routeProvider

        .when('/Route1/:ID', {

        templateUrl:'Route1.html',

        controller:'Route1Controller'



    })

        .when('/Route2', {

        templateUrl: 'Route2.html',

        controller:'Route2Controller'

    })



        .otherwise({

        redirectTo: '/'

    });

});



function Route1Controller($scope, $routeParams) {

    $scope.ID = $routeParams.ID;

}



function Route2Controller($scope) {



}


<script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.4.7/angular.js"></script>

<script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.4.7/angular-route.js"></script>



<div ng-app="AngularApp">

    <script type="text/ng-template" id="Route1.html">

        Route1

        {{ID}}



        {{4+10}}

    </script>

    <script type="text/ng-template" id="Route2.html">

        Route2



        {{4+10}}

    </script>

<p>Routing Explained</p>

                <a href="#Route1/100">Route1</a><br/>

                <a href="#Route2">Route2</a>

                <div ng-view>



                </div>

    </div>


 类似资料:
  • 您可以将其他数据作为常规方法参数传递到后台任务。我再次使用下面的例子(希望没有让你厌恶): BackgroundJob.Enqueue(() => Console.WriteLine("Hello, {0}!", "world")); 在常规方法调用中,在执行后台作业期间, Console.WriteLine 方法将使用这些参数。为了参数传递进去,需要先序列化。 使用 了不起的 Newtonsof

  • 尽管应用中的大部分组件都依赖其他组件,但并不总是如此。同时 Windsor 用来查找满足依赖的正确组件的默认规则有时不得不进行调整。 如何做到这一点基于值的来源和获取值的地方。 Composition root - container.Resolve container.Resolve 方法有几个重载允许传递 IDictionary 作为参数(在这种情况下,建议使用 [Arguments] 类),

  • 问题内容: 如何将参数传递给javafx中的辅助窗口?有没有办法与相应的控制器通信? 例如:用户从中选择一个客户,TableView然后会打开一个新窗口,显示该客户的信息。 newStage将是新窗口。问题是,我找不到告诉控制器在哪里寻找客户信息的方法(通过将id作为参数传递)。 有任何想法吗? 问题答案: 推荐方法 该答案列举了将参数传递给FXML控制器的不同机制。 对于小型应用程序,我强烈建议

  • 我在MYSQL服务器上的y db中有一个存储过程。当我试图调用它时,它给出了错误: 通用域名格式。mysql。jdbc。例外。jdbc4。MySQLSyntaxErrorException:过程thu的参数数量不正确。生产者;预期为2,在组织中为0。springframework。jdbc。支持SQLExceptionSubclassTranslator。doTranslate(SQLExcept

  • 我是新手。有人能解释一下这个代码吗 公开课演示2{ } 结果打印出1,2,3,4,5和10,15,5,3

  • 如何在JavaFX中将参数传递给辅助窗口?有没有办法与相应的控制器进行通信? 例如:用户从中选择一个客户,然后打开一个新窗口,显示该客户的信息。 将是新窗口。问题是,我找不到一种方法告诉控制器在哪里寻找客户的信息(通过将id作为参数传递)。 有什么想法吗?