Javascript 将$scope替换为“';控制器';作为「;语法
我正在学习AngularJS+ASP.NET教程(),它们使用$scope,但我试图用新语法“controller”替换它。(检查后) 我所做的现在不起作用,因为页面在nextQuestion()函数中调用$http.get,但视图保持不变,只有标题“loading question…” 我的代码: JS Index.cshtmlJavascript 将$scope替换为“';控制器';作为「;语法,javascript,asp.net,angularjs,controller,angularjs-scope,Javascript,Asp.net,Angularjs,Controller,Angularjs Scope,我正在学习AngularJS+ASP.NET教程(),它们使用$scope,但我试图用新语法“controller”替换它。(检查后) 我所做的现在不起作用,因为页面在nextQuestion()函数中调用$http.get,但视图保持不变,只有标题“loading question…” 我的代码: JS Index.cshtml @{ ViewBag.Title=“播放”; } {{quick.answer()} 下一个问题 {{quick.title} {{option.title}}
@{
ViewBag.Title=“播放”;
}
{{quick.answer()}
下一个问题
{{quick.title}
{{option.title}}
@节脚本{
@Scripts.Render(“~/Scripts/angular.js”)
@Scripts.Render(“~/Scripts/app/quick controller.js”)
}
您基本上找到了在控制器中使用这个
不是一个好主意的原因。
$http成功承诺中的this
不是控制器的this
,因为此函数在不同的上下文中执行。如果通过闭包获得$scope
,则这不会是一个问题
您可以通过定义一个变量
var=this来解决这个问题编码>然后改用这个。你基本上找到了为什么在控制器中使用这个不是一个好主意的原因。
$http成功承诺中的this
不是控制器的this
,因为此函数在不同的上下文中执行。如果通过闭包获得$scope
,则这不会是一个问题
您可以通过定义一个变量var=this来解决这个问题
然后使用that
。或者您可以使用javascripts绑定函数并传入您想要使用的正确的this
$http.get('/api/trivia').success(function (data, status, headers, config) {
this.options = data.options;
this.title = data.title;
this.answered = false;
this.working = false;
}.bind(this));
或者,您可以只使用javascripts绑定函数并传入您想要使用的正确代码
$http.get('/api/trivia').success(function (data, status, headers, config) {
this.options = data.options;
this.title = data.title;
this.answered = false;
this.working = false;
}.bind(this));
这对我有用,谢谢你/
//form.blade.php
<md-content flex ng-controller="EmployeeController as child" ng-cloak>
<md-input-container>
<label>State</label>
<md-select name="fk_state" ng-model="form.fk_state">
<md-option><em>Select</em></md-option>
<md-option ng-repeat="state in child.states" ng-value="state.uf">
[[state.uf]]
</md-option>
</md-select>
</md-input-container>
</md-content>
这对我有用,谢谢你/
//form.blade.php
<md-content flex ng-controller="EmployeeController as child" ng-cloak>
<md-input-container>
<label>State</label>
<md-select name="fk_state" ng-model="form.fk_state">
<md-option><em>Select</em></md-option>
<md-option ng-repeat="state in child.states" ng-value="state.uf">
[[state.uf]]
</md-option>
</md-select>
</md-input-container>
</md-content>
谢谢,我知道这是一个简单的问题,但有点困惑。在阅读了johnpapa的文章后,我认为新的语法会提供很多东西。谢谢,我发现这是一个简单的问题,但有点混乱。在阅读了johnpapa的文章之后,我认为新的语法会提供很多。好主意,但是如果你需要同时引用这两个,它就不起作用了。好主意,但是如果你需要同时引用这两个,它就不起作用了。
angular.module("app").controller('EmployeeController',
function($scope, $q, utilsFactory){
var that = this;
//service that contains a $http request
utilsFactory.getAll('states').then(function(response) {
that.states = response.data;
console.log(that.states); //should be available to child.states
});
}
)