Javascript 角度/离子-模型不更新控制器中的$scope
我是angularjs的新手,我正在尝试一些我认为应该非常简单的东西。。。但事实证明我没有弄明白 我有一个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(
$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
中创建对象更干净,并消除了该问题。