Javascript 在两个作用域angularjs之间传递全局
您好,我正在设计一个HTML页面: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
<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> </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函数。但是第二种方法对我来说工作不正常!!!但现在我的功能运行良好。再次感谢