$scope 在 app.js 文件中不起作用。但是当 HTML 文件包含 app.js 文件的内容时,$scope 有效

Posted

技术标签:

【中文标题】$scope 在 app.js 文件中不起作用。但是当 HTML 文件包含 app.js 文件的内容时,$scope 有效【英文标题】:$scope not working in app.js file. But $scope works when HTML file has contents of app.js file 【发布时间】:2019-10-15 00:01:24 【问题描述】:

当我在 html 页面本身中使用 Angular 脚本时,一切正常,包括 $scope.myOrderBy。但是,当我在 Static/JS/app.js 文件中使用相同的脚本时,除了 $scope.myOrderBy 之外,一切正常。 我想在 app.js 中使用 $scope.myOrderBy 变量。

我发现代码实际上在 HTML 本身中运行良好,但在 app.js 文件中一切都不起作用。

// app.js file

var app = angular.module("productManager", []);
app.controller("productController", function ($scope, $http) 
    $scope.products = [];

    // This doesn't work and refelct back to html page.
    $scope.myOrderBy = "news";

    $scope.confirmDelete = false;
    $scope.productForm = 
        id: -1,
        proName: "",
        brand: "",
        madeIn: "",
        price: ""
    ;

    _refreshProductData();

    function _refreshProductData() 
    

    // Submit Button Button
    $scope.submitProduct = function () 

    ;


    // Create New Product Button
    $scope.createNewProduct = function () 
    ;


    // Delete Product Button
    $scope.deleteProduct = function (product) 
    ;


    // Edit Product Button
    $scope.editProduct = function (product) 
    ;

    // Success Function
    function _success(response) 
    ;

    // Error Function
    function _error(response) 
    ;

    // Clear Form Data
    function _clearFormData() 
    );

更新 1: 添加 HTML 文件:

<body ng-app = "productManager" ng-controller = "productController">
    <div align = "center">
        myOrder
        <h4>Product Manager : </h4>
        <form ng-submit = "submitProduct()">
            .
            .
            .
        </form>
        <button ng-click = "createNewProduct()">Create New Product</button>
    </div>
    <div align = "center">
        <h1>Product Catalogue : </h1>
        <br/>
        <input type="text" placeholder = "Enter Any" />
        <table>
            <thead>
                <tr>
                    .
                    .

                </tr>
                <tr>
                    .
                    .
                    .
                    <th>Action</th>
                </tr>
            </thead>
            <tbody>
                <tr ng-repeat = "product in products | orderBy : myOrder>
                    .
                    .
                    .
                    <td>
                        <button ng-click = "editProduct(product)">Edit</button>
                        <button ng-click = "deleteProduct(product)">Delete</button>
                    </td>
                </tr>
            </tbody>
        </table>
    </div>
</body>

【问题讨论】:

【参考方案1】:

myOrderBy 是 app.js 文件中的变量名,您在 HTML 文件中使用 myOrder。 只要改变任何人对他人的看法。 只是拼写错误。

【讨论】:

@Vinod Bokde 欢迎您。这是我的荣幸。

以上是关于$scope 在 app.js 文件中不起作用。但是当 HTML 文件包含 app.js 文件的内容时,$scope 有效的主要内容,如果未能解决你的问题,请参考以下文章

scope.$watch 在角度指令中不起作用

Angular scope.watch 在指令中不起作用

为啥 React 路由在组件中不起作用?

Ajax 调用在 angularjs 中不起作用

Vue JS:检查用户登录是不是在我的代码中不起作用

当用户输入通过来自另一个组件的道具的文本时,在反应 js 中不起作用