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

AngularJS-在页面之间传递数据

阴高刚
2023-03-14
问题内容

我是AngularJS入门者。我正在尝试从发送数据:

  • A页:范列表页

  • 网页B:Van更新页面。

当用户单击货车的更新链接时,我正在调用控制器并在控制器中检索货车详细信息。但是,我无法使用同一控制器将货车详细信息分配给页面B(货车更新页面)…错误"Cannot set property 'vanNumber' of undefined"

*** Page A: Van List ****

<form name="listVanForm" >
   <table>
   <tr> <td ng-controller="VanUpdateCtrl"><a href="#/van-update" ng-click="prePopulateForm(row.members.vanNumber.value )" class="btn btn-small btn-primary">update</a></td> </tr>
   </table>
</form>

*** Page B: Van Update ****

  <div class="container">
        <h2>Edit Van </h2>

        <form name="updateVanForm" novalidate="novalidate" class="form-horizontal" ng-submit="updateCard(formData)">
            <div class="control-group">
                <label class="control-label" >Van Number:</label>

                <div class="controls">
                    <input type="text" id="vanNumber" ng-model="formData.vanNumber" placeholder=""/>
                </div>
            </div>
        </form>
     </div>

*** VanUpdateCtrl **

   app.controller('VanUpdateCtrl', ['$scope', 'VanUpdateFactory', '$location',
                                      function ($scope, VanUpdateFactory, $location) {

        //callback for ng-init 'populateDD':    
        $scope.prePopulateForm = function (cardNoParam m) {

            alert('cardNo = '+cardNoParam);

            $scope.formData.cardNumber=cardNoParam;}
    }

So, $scope.formData.cardNumber OR $scope.formData in the destination page is not recognised.

问题答案:

您需要创建一个服务,以便能够在控制器之间共享数据。

app.factory('myService', function() {
 var savedData = {}
 function set(data) {
   savedData = data;
 }
 function get() {
  return savedData;
 }

 return {
  set: set,
  get: get
 }

});

在控制器A中:

myService.set(yourSharedData);

在控制器B中:

$scope.desiredLocation = myService.get();

请记住通过将myService作为参数传递到控制器中。



 类似资料:
  • 问题内容: 我正在尝试在应用程序的结帐过程中在页面之间传递数据,但是它无法正常工作。我已经读了一些书,大多数人建议使用服务,但是唯一的问题是,刷新页面(用户单击刷新或稍后再返回)时,该服务中的所有数据都会消失。这是有道理的,因为服务中的数据并不是永久性的,而是会引起问题。 所以问题是:如何在angularJS中的页面之间传递数据,并且仍然保持页面刷新后传递的数据? 到目前为止,这是我的代码(尝试使

  • 我有两个简单的页面。我需要将用户填写的文本框的值发送到另一个简单页面。我已经放弃了如何在wordpress页面之间传递数据。我得到了以下错误: 警告: sizeof():参数必须是一个数组或一个对象,在第175行的D:\xamp\htdocs\wordpress\wp-Content\plugins\alle-php-in-post-and-page\allowphp.php中实现Countabl

  • 问题内容: 我想在一个页面中获取用户输入,将其存储在一个php变量中,并在另一个php页面中使用它。我已经尝试过使用“会话”,但是它似乎没有用。还有另一种安全的选择吗?此信息可能是用户名和密码。 问题答案: 尝试更改会话代码,因为这是执行此操作的最佳方法。 例如: index.php nextpage.php 但是,我可能会在会话中存储更安全的内容(例如用户ID),而不是用户的登录凭据。

  • 问题内容: 当使用AngularJS服务尝试在两个控制器之间传递数据时,我的第二个控制器在尝试从该服务访问数据时始终会收到未定义的信息。我猜这是因为第一个服务执行的是$ window.location.href,并且我认为这正在清除服务中的数据?我是否可以将URL更改为新位置,并将数据保留在第二个控制器的服务中?当我运行下面的代码时,第二个控制器中的警报始终未定义。 app.js(定义服务的位置)

  • 在普通的web开发中,参数传递有这么几种形式: url: /another_page?id=3 表单: <form>...</form> 在vuejs中,不会产生表单的提交(这会引起页面的整体刷新). 所以有两种: url . 同传统语言. vuejs 内部的机制.(无法在url 中体现,可以认为是由js代码隐式实现的) 我们用一个实际的例子说明. 我们之前实现了 "博客列表页",接下来我们要实现

  • 问题内容: 我遇到的情况是表单跨越了几页(可能并不理想,但这就是事实)。我想为整个表单提供一个范围,以便您随身携带,以便用户在步骤之间来回移动时很容易记住状态。 所以我需要用非常伪的代码来做: 组 单击一个链接,然后将其路由到新模板(可能使用同一控制器)。 仍应与最后一页上的值相同。 是否以某种方式持久保存示波器的数据是解决此问题的正确方法,还是还有其他方法?您是否甚至可以创建一个在路由之间具有持