Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/24.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ssl/3.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 角度/离子-模型不更新控制器中的$scope_Javascript_Angularjs_Data Binding_Ionic Framework - Fatal编程技术网

Javascript 角度/离子-模型不更新控制器中的$scope

Javascript 角度/离子-模型不更新控制器中的$scope,javascript,angularjs,data-binding,ionic-framework,Javascript,Angularjs,Data Binding,Ionic Framework,我是angularjs的新手,我正在尝试一些我认为应该非常简单的东西。。。但事实证明我没有弄明白 我有一个$scope变量,我想将它双重绑定(使用ng model)到文本区域。我可以在js fiddle网站上使用它,但现在我的代码可以了。我试着把所有的东西都精简到几行,但仍然不起作用,控制器从未更新过 这是我的代码: js/main.js var app=angular .module('noclu', ['ionic', 'app.controllers']) .config(

我是angularjs的新手,我正在尝试一些我认为应该非常简单的东西。。。但事实证明我没有弄明白

我有一个
$scope
变量,我想将它双重绑定(使用
ng model
)到文本区域。我可以在js fiddle网站上使用它,但现在我的代码可以了。我试着把所有的东西都精简到几行,但仍然不起作用,控制器从未更新过

这是我的代码:

js/main.js

var app=angular
    .module('noclu', ['ionic', 'app.controllers'])
    .config(function ($stateProvider, $urlRouterProvider){
        $stateProvider
                .state('menu.main', {
                    url: "/main",
                    views: {
                        'menuContent': {
                            templateUrl: 'templates/main.html',
                            controller: 'MainCtrl'
                        }
                    }
                });
        $urlRouterProvider.otherwise("/menu/main");
    });
js/controller.js

angular
    .module('app.controllers', [])
    .controller('MainCtrl', function ($scope){
        $scope.src='---';
        $scope.get_feeds=function(){
            //seems like that here "this" is actually the textarea ??
            //$scope.src is always whatever has been set in the controller
            console.log('this:'+this.src);  //this output whatever I enter in the textarea
            console.log('scope:'+$scope.src); //this always output '---'
        };
    });
index.html

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <meta name="viewport" content="initial-scale=1, maximum-scale=1, user-scalable=no, width=device-width">
        <link rel="icon" type="image/png" href="favicon.png">
        <title>NoClu</title>

        <link href="lib/ionic/css/ionic.css" rel="stylesheet">

        <!-- ionic/angularjs js -->
        <script src="lib/ionic/js/ionic.bundle.js"></script>

        <!-- cordova script (this will be a 404 during development) -->
        <script src="cordova.js"></script>

        <!-- your app's js -->
        <script src="js/main.js"></script>
        <script src="js/controllers.js"></script>
    </head>
    <body ng-app="noclu">
    <ion-nav-view></ion-nav-view>
</body>
</html>

诺克鲁
模板/main.html

<ion-view view-title="NoClu" >
    <ion-content class="padding" id="src-wrapper-center">
        <div ng-class="vertical_center">
            <div id="src-wrapper">
                <div>
                    <div class="padding src-title">What are you in the mood for ?</div>
                    <div class="item" id="src-txt-wrapper">
                        <textarea id="src" ng-model="src"></textarea>
                    </div>
                    <button id="search" class="button button-block button-large button-balanced" ng-click="get_feeds()" >
                        Let's eat
                    </button>
                </div>
            </div>
        </div>
    </ion-content>
</ion-view>

你有什么心情?
我们吃吧
更新-我成功了,但为什么?


我通过更改
$scope.src='--'使其工作
$scope.src={body:'--'}然后将
ng模式
更改为
src.body
。但是为什么不以另一种方式工作,因为它适用于布尔值?

直接使用$scope。在angularJS中不是一个好的实践。有各种各样的帖子,更多的关注$scope继承。 例如:

因此,您需要这样更改您的模型:

$scope.myModel = {};
$scope.myModel.src = "---"

您的html将直接使用$scope绑定到
myModel.src

。在angularJS中不是一个好的实践。有各种各样的帖子,更多的关注$scope继承。 例如:

因此,您需要这样更改您的模型:

$scope.myModel = {};
$scope.myModel.src = "---"

您的html将直接使用$scope绑定到
myModel.src

。在angularJS中不是一个好的实践。有各种各样的帖子,更多的关注$scope继承。 例如:

因此,您需要这样更改您的模型:

$scope.myModel = {};
$scope.myModel.src = "---"

您的html将直接使用$scope绑定到
myModel.src

。在angularJS中不是一个好的实践。有各种各样的帖子,更多的关注$scope继承。 例如:

因此,您需要这样更改您的模型:

$scope.myModel = {};
$scope.myModel.src = "---"

和你的html绑定到
myModel.src

参见我的回复中的“为什么”参见我的回复中的“为什么”参见我的回复中的“为什么”参见我的回复中的“为什么”很棒,从文章中我得到
这里的关键是ng开关是一个创建新范围的指令。还有其他指令可以执行此操作。
。所以我可能会在不知情的情况下使用一个创建新范围的指令。必须找到那些是什么。感谢您的帮助。当本地
$scope
变得太大时,您可能会遇到问题。在
$scope
中创建对象更干净,并且消除了这个问题。很好,从文章中我了解到
这里的关键是ng开关是一个创建新范围的指令。还有其他指令可以执行此操作。
。所以我可能会在不知情的情况下使用一个创建新范围的指令。必须找到那些是什么。感谢您的帮助。当本地
$scope
变得太大时,您可能会遇到问题。在
$scope
中创建对象更干净,并且消除了这个问题。很好,从文章中我了解到
这里的关键是ng开关是一个创建新范围的指令。还有其他指令可以执行此操作。
。所以我可能会在不知情的情况下使用一个创建新范围的指令。必须找到那些是什么。感谢您的帮助。当本地
$scope
变得太大时,您可能会遇到问题。在
$scope
中创建对象更干净,并且消除了这个问题。很好,从文章中我了解到
这里的关键是ng开关是一个创建新范围的指令。还有其他指令可以执行此操作。
。所以我可能会在不知情的情况下使用一个创建新范围的指令。必须找到那些是什么。感谢您的帮助。当本地
$scope
变得太大时,您可能会遇到问题。在
$scope
中创建对象更干净,并消除了该问题。