【问题标题】:ng-model is not working inside ng-view with global controllerng-model 在全局控制器的 ng-view 中不起作用
【发布时间】:2020-08-16 16:28:36
【问题描述】:

看起来很简单但我无法修复它,我的控制器无法读取与 ng-view 中的输入框相关的 ng-model。这是我的代码

main.html

<html ng-app="myapp" ng-controller="main_controller">
<head>
    <title>test</title>
</head>
<body>
<section ng-view>
</section>
<!--Jquery-->
<script src="../jquery/jquery.js" type="text/javascript"></script>
<script src="../angularjs/angular.js" type="text/javascript"></script>
<!--Angular js-->
<script src="../angularjs/angular-route.js" type="text/javascript"></script>
<script src="../app.js" type="text/javascript"></script>
</body>
</html>

view.html

<input type="text" ng-model="input_value">
<button ng-click="read_input()">print</button>

app.js

var app = angular.module('myapp', ['ngRoute'])
app.config(function ($routeProvider) {
    $routeProvider
        .when('/', {
            templateUrl: 'view.html',
        })
})
app.controller('main_controller', function ($scope) {
angular.element(document).ready(function () {
    //some Ajax request
})
    $scope.read_input = function () {
        console.log($scope.input_value)
    }
})

当我在输入框中写任何东西并按下打印按钮时,它应该在控制台日志中打印数据,但它给了我未定义的信息。 我知道我没有在 routeProvider 的配置中提供控制器,但我在页面顶部包含了 ng-controller,这是因为我想为我的所有视图使用一个控制器,正如你看到的,当文档完整时我有 ajax 请求加载后,如果我在每次视图更改时为 routeProvider 中的每个页面提供相同的控制器,我的 ajax 将被调用,我不想要这个。有没有更好的解决方案?

【问题讨论】:

  • 我从来没有像你这样使用过 Angular(使用

标签: javascript angularjs angularjs-ng-model ng-view


【解决方案1】:

试试下面。您的控制器范围未达到 html。

<div ng-controller="main_controller">
    <input type="text" ng-model="input_value">
    <button ng-click="read_input()">print</button>
</div>

【讨论】:

    猜你喜欢
    • 2023-03-24
    • 2015-12-22
    • 2016-02-03
    • 1970-01-01
    • 2019-08-06
    • 2016-09-12
    • 1970-01-01
    • 2017-02-07
    相关资源
    最近更新 更多