【发布时间】:2017-11-17 10:31:51
【问题描述】:
我是angular 和typescript 的初学者。
我在 typescript 模块中的服务如下所示
module MyModule {
class HelloService {
public data:string[] = ["1","2","3"];
public booleanvalue:boolean = false;
public stringvalue:string = "hai";
public test() {
this.data.push("hai");
this.booleanvalue = true;
this.stringvalue = "Hai welcome";
}
}
angular.module('MyModule', []).service('hexafy', function () {
return new HelloService();
});
}
我编译上面的内容并将获得的 JavaScript 引用添加到一个带有以下 div 元素的 HTML 文件中
<div ng-app="myApp" ng-controller="myCtrl">
<br/>
<button ng-click="buttonClick()">Click Me! </button> <br>
<br/>
<label>{{value}}</label><br>
</div>
injectingservice hexafy 之后的 myCtrl 如下所示
var myApp = angular.module('myApp',['MyModule']);
myApp.controller('myCtrl', ['$scope' , 'hexafy' , MyController]);
function MyController($scope, hexafy)
{
var vm = $scope;
vm.thirdpartyfactory = hexafy;
vm.value = vm.thirdpartyfactory.stringvalue;// the problem is in this line
vm.buttonClick = function(){
vm.thirdpartyfactory.test();
}
这是我的问题。
如果我将“数据”绑定到 vm.value,它会在单击按钮时更改,但如果我将 booleanvalue 或 stringvalue 绑定到 vm.value,它不会更新。
这是什么原因
【问题讨论】:
标签: angularjs typescript binding angularjs-scope angular-services