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

离子框架:$ scope在简单警报中未定义

万开畅
2023-03-14
问题内容

.controller(‘newGoalCtrl’, function($scope, $ionicPopup) {
$scope.addNewGoal = function() {
alert($scope.goaltitle);
};
});

<ion-pane view-title="goal">
   <ion-header-bar class="bar-positive">
      <div class="buttons">
          <a nav-transition="android" class="button button-icon icon ion-arrow-left-b" ng-click="" href="#/index"></a>
      </div>
      <h1 class="title">Add New Goal</h1>
    </ion-header-bar>


    <ion-content class="padding" scroll="false" >
        <div class="list">
            <label class="item item-input">
                <input type="text" placeholder="#Title" ng-model="goaltitle">
            </label>
            <label class="item item-input">
                <span class="hashtag-title">#{{hashtagname}}</span>
            </label>
            <label class="item item-input">
              <textarea placeholder="Goal"></textarea>
            </label>
        </div>
    </ion-content>


    <ion-tabs class="tabs-icon-top tabs-color-active-positive">
        <button class="button button-positive button-bar no-round-corner" ng-click="addNewGoal()">Add Goal</button>
    </ion-tabs>
</ion-pane>

这是我的代码…我不知道如何解释,但是当我在文本框中输入内容时,它总是说未定义

但是$ scope.goaltitle =“东西”正在.controller();上工作。…


问题答案:

简短答案

此问题的根本原因是,ion- content确实创建了一个原型继承的子作用域,这就是为什么goaltitle控制器作用域(原始类型)与goaltitle您使用的子作用域不同的原因ng- model

理想的做法是dot rule在定义视图模型时遵循。这样原型继承规则将遵循作用域层次结构。

您应该定义对象,然后在其中分配所有ng-model属性。

控制者

.controller('newGoalCtrl', function($scope, $ionicPopup) {
    $scope.model = {};
    $scope.addNewGoal = function() {
        alert($scope.model.goaltitle);
    };
});

然后在其中具有goalTitleGoal等属性。

标记

<ion-content class="padding" scroll="false" >
    <div class="list">
        <label class="item item-input">
            <input type="text" placeholder="#Title" ng-model="model.goaltitle">
        </label>
        <label class="item item-input">
            <span class="hashtag-title">#{{hashtagname}}</span>
        </label>
        <label class="item item-input">
          <textarea placeholder="Goal" ng-model="model.Goal"></textarea>
        </label>
    </div>
</ion-content>

我不想再次重写整个说明,因此在这里我引用的是类似的答案,其中涵盖了所有详细信息。



 类似资料:
  • 我正在为一个应用程序工作,该应用程序使用警报告诉用户它正在使用nfc。我正在对这个应用程序进行单元测试,并在alertcontroller上设置了一个间谍。创建方法如下: 在单元测试中,我想检查是否使用正确的警报选项调用它,如下所示: 然而,问题是由于处理程序的原因,它在运行测试时给出了错误。我如何有效地测试alertcontroller.create函数是否使用正确的值调用?就像现在一样,测试给

  • 在我的应用程序中,当我试图显示自定义的框时,它在android手机中运行良好。现在,当我在android选项卡上安装应用程序时,一切都很好,只有自定义框有问题。不显示。所以我想,我应该检查正常对话框,它工作正常。下面是普通对话框和警报对话框的代码。

  • 问题内容: 我正在尝试从Java代码调用Java脚本函数。 这是我的Java代码 这是我的Java脚本文件: 但是当我运行驱动程序类的主要方法时,它给我错误如下: 我所知道的是它需要一些脚本引擎来执行它。 为此,我在类路径中添加了rhino.jar文件,但这不起作用。 我没有得到如何解决这个错误。请帮助。谢谢。 问题答案: 不是JavaScript的一部分,而是Web浏览器提供的对象的一部分。所以

  • 我知道这可能是一个容易修复的错误,但我没有找到它。当警报框出现并点击时,需要点击2次才能关闭它

  • 实现一个最最简单的数学计算:加、减、乘、除,给大家演示如何搭建简单的 API Server。按照前面几章的写法,先来看看加法、减法示例代码: worker_processes 1; #nginx worker 数量 error_log logs/error.log; #指定错误日志文件路径 events { worker_connections 1024; } http

  • 问题内容: 通过以下方式安装了cordova设备插件: 然后下载ngCordova,并将ng-cordova.min.js包含在js文件夹中,并且也包含在index.html中 接下来我所做的是注射ngCordova如下 然后包含在控制器中,如下所示 您现在可以告诉我出了什么问题吗? 如果还有另一种读取设备UUID的方法,请向我说明。 问题答案: 哇,通过这个问题,我发现自己在做什么错。http: