Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/411.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在两个作用域angularjs之间传递全局_Javascript_Jquery_Angularjs - Fatal编程技术网

Javascript 在两个作用域angularjs之间传递全局

Javascript 在两个作用域angularjs之间传递全局,javascript,jquery,angularjs,Javascript,Jquery,Angularjs,您好,我正在设计一个HTML页面: <div ng-controller="AppController"> <div class="container"> <div class="row"> <div id='cssmenu'> <ul> <li class='active

您好,我正在设计一个HTML页面:

<div ng-controller="AppController">
        <div class="container">
            <div class="row">
                <div id='cssmenu'>
                    <ul>
                        <li class='active'><a href='#'><span>Home</span></a></li>
                        <li class='has-sub'>
                            <a href='#'><span>Simulink</span></a>
                            <ul>
                                <li><a href='#' data-ng-click='bind("Scope")'><span>Scope</span></a></li>
                                <li class='last'><a href='#' data-ng-click='bind("XY Graph")'><span>XY Graph</span></a></li>
                            </ul>
                        </li>
                        <li class='has-sub'>
                            <a href='#'><span>Communications</span></a>
                            <ul>
                                <li><a href='#' data-ng-click='bind("Constellation diagram")'><span>Constellation diagram</span></a></li>
                                <li class='last'><a href='#' data-ng-click='bind("Eye diagram")'><span>Eye diagram</span></a></li>
                            </ul>
                        </li>
                        <li class='has-sub'>
                            <a href='#'><span>DSP</span></a>
                            <ul>
                                <li><a href='#' data-ng-click='bind("Matrix viewer")'><span>Matrix viewer</span></a></li>
                                <li><a href='#' data-ng-click='bind("Spectrum Analyser")'><span>Spectrum Analyser</span></a></li>
                                <li class='last'><a href='#' data-ng-click='bind("Waterfall")'><span>Waterfall</span></a></li>
                            </ul>
                        </li>
                        <li class='last'><a href='#' ng-click="add()"><span>Attach to Model</span></a></li>
                    </ul>
                </div>

                <table class="table">
                    <thead>
                        <tr>
                            <th>Product Name</th>
                            <th>Product Type</th>
                            <th>Product ID</th>
                            <th>&nbsp;</th>
                        </tr>
                        <tr>
                            <th><input ng-model="newProduct.productName" class="form-control" /></th>
                            <th><input ng-model="newProduct.productId" class="form-control" /></th>
                            <th><input ng-model="newProduct.productPrice" class="form-control" /></th>
                            <th>
                                <button ng-click="update()" class="btn btn-success">Update</button>
                            </th>
                        </tr>
                    </thead>
                    <tbody>
                        <tr ng-repeat="product in products">
                            <td>{{product.productName}}</td>
                            <td>{{product.productType}}</td>
                            <td>${{product.productId}}</td>
                            <td>
                                <button ng-click="delete(product)" class="btn btn-warning">Delete</button>
                            </td>
                        </tr>
                    </tbody>
                </table>
            </div>
        </div>
    </div>

品名 产品类型 产品ID 使现代化 {{product.productName} {{product.productType} ${{product.productId} 删去
这是控制器Javascript:

<script>
        var app = angular.module('my-app', [], function () {

        });

        app.controller('AppController', function ($scope) {

            $scope.bind = function (e) {
                id = e;
                console.log(id);
            };

            $scope.products = [];

            $scope.add = function (id) {
                var newProduct = {
                    productName: id,
                    productType: id,
                    productId: 1
                };
                $scope.products.push(newProduct);
            }

            $scope.delete = function (product) {
                var index = $scope.products.indexOf(product);
                $scope.products.splice(index, 1);
            }
        });
    </script>

var app=angular.module('my-app',[],函数(){
});
app.controller('AppController',函数($scope){
$scope.bind=函数(e){
id=e;
console.log(id);
};
$scope.products=[];
$scope.add=函数(id){
var新产品={
productName:id,
productType:id,
产品编号:1
};
$scope.products.push(新产品);
}
$scope.delete=功能(产品){
var指数=$scope.products.indexOf(产品);
$范围.产品.拼接(索引,1);
}
});
我的问题是,当我单击任何链接时,就会调用
$scope.bind
函数。选择链接后,我单击Attach Model链接,inturn调用
$scope.add
函数。我必须将链接(即XY图)的静态数据传递到
add
函数,以便使用ng repeat将数据附加到表中


有人能在我的脚本中指出这个问题吗?

参数
id
隐藏了
add()
函数作用域中的全局
id
。要访问全局
id
,只需省略参数即可

$scope.add = function () {
    var newProduct = {
        productName: id,
        productType: id,
        productId: 1
    };
    $scope.products.push(newProduct);
}
但是,我不建议使用全局变量,因为它们可以被其他代码(包括第三方库)修改。您可以将
id
保留为控制器作用域的属性

$scope.bind = function (e) {
    $scope.id = e;
    console.log($scope.id);
};

$scope.add = function () {
    var newProduct = {
        productName: $scope.id,
        productType: $scope.id,
        productId: 1
    };
    $scope.products.push(newProduct);
}

$scope.add()
有一个参数
id
,但在标记中您没有参数我正在传递来自上一个函数$scope.bind的id,这导致了错误!!!!问题是我必须从$scope.bind传递数据,即('id'值到'add'函数,以便将新产品与所选产品一起添加到表中)谢谢,Shuhei Kagawa。我使用第一种设计(即直接引用id)将id传递给$scop.add函数。但是第二种方法对我来说工作不正常!!!但现在我的功能运行良好。再次感谢