angular 自定义服务向方法传递参数问题

我自定义了一个服务 传入数字返回字符串的状态
但是我把输入框的值传入写的好像不对 求带

 <div ng-app="app7" ng-controller="myctrl7">
        <input type="text" ng-model="txtnum">
        <p> {{myservice}}
        </p>
    </div>
    


    var app7 = angular.module('app7', [])
    app7.service('tostring', function () {
    this.myfuc = function (x) {
        if (x == 1) {
            return "未开课"
        } else if (x == 2) {
            return "已开课"
        } else if (x == 3) {
            return "已结课"
        } else {
            return "课程异常"
        }
    }
})
app7.controller('myctrl7', function ($scope, tostring) {
    $scope.myservice = tostring.myfuc($scope.txtnum)

})

clipboard.png这个有问题 为什么

clipboard.png

阅读 2.6k
1 个回答

你的input的ngModal改变的时候,myservice不会重跑,因为myservice在页面是一个差值,这是一个方法,而非数据,所有你得watch并触发它。

$scope.$watch('txtnum', function(val) {
  $scope.myservice = tostring.myfuc($scope.txtnum)
});
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进