我有一个服务正在向后端发出AJAX请求
服务:
function GetCompaniesService(options)
{
this.url = '/company';
this.Companies = undefined;
this.CompaniesPromise = $http.get(this.url);
}
Run Code Online (Sandbox Code Playgroud)
控制器:
var CompaniesOb = new GetCompanies();
CompaniesOb.CompaniesPromise.then(function(data){
$scope.Companies = data;
});
Run Code Online (Sandbox Code Playgroud)
我希望我的服务能够处理".then"函数,而不必在我的控制器中处理它,并且我希望能够让我的控制器在服务中的承诺解决之后对服务中的数据进行操作.
基本上,我希望能够像这样访问数据:
var CompaniesOb = new GetCompanies();
$scope.Companies = CompaniesOb.Companies;
Run Code Online (Sandbox Code Playgroud)
随着承诺的解决在服务本身内部处理.
这可能吗?或者是我能够访问该承诺的唯一方法是解决方案来自服务外部吗?
我下面制作一个自定义编辑这个例子中<span>使用ngModelController:
https://docs.angularjs.org/api/ng/type/ngModel.NgModelController#example
我现在要做的是能够通过指令内部的逻辑动态禁用对该字段的编辑.通过禁用它我的意思是用户根本无法编辑文本,它只会显示为常规文本.
这是一个样本plunkr:
来自plunkr的代码:
angular.module('app', [])
.controller('Ctrl', function ($scope) {
$scope.stuff = "test";
})
.directive('contenteditable',
function ($log) {
'use strict';
return {
restrict: 'A',
require: 'ngModel',
scope: {
},
link: function ($scope, $element, $attributes, ngModel) {
if (angular.isUndefined(ngModel)) {
$log.warn('ngModel is not defined');
return;
}
function read() {
ngModel.$setViewValue($element.text());
}
ngModel.$render = function () {
$element.html(ngModel.$viewValue || '');
};
}
};
}
);
Run Code Online (Sandbox Code Playgroud)
任何帮助,将不胜感激.
这是我的javascript代码:
var num1;
function press_Button(){
num1 = 3;
}
Run Code Online (Sandbox Code Playgroud)
然后我有一个按钮: onclick="press_Button()"
在HTML中是这样的:
<script type="text/javascript">
document.write(num1);
</script>
Run Code Online (Sandbox Code Playgroud)
即使在按下按钮后,页面也会将变量显示为未定义,我无法弄清楚原因.
救命!
我试图在控制器内部使用带有角度函数(特别是$ http.get)的"this"时遇到问题.
例:
Javascript-(伪代码)
...
.controller('testController')
{
$http.get(data)
{
this.Stuff = data;
}
}
...
Run Code Online (Sandbox Code Playgroud)
HTML的
<div ng-controller='testController as test'>
{{test.Stuff}}
</div>
Run Code Online (Sandbox Code Playgroud)
当试图访问html中的test.Stuff时,它是空的.
我知道有一个范围问题,但是我不能在$ http函数中访问控制器的'this'吗?