如何使用angularjs

时间:2015-10-07 11:57:55

标签: angularjs

我是angularjs的新手。我只是尝试使用自定义指令更新输入txt值。但我不能。在这里,我已经显示了我的代码我做错了这段代码。有人帮助我并解释它是如何工作的。



var myApp = angular.module('myApp',[]);

//myApp.directive('myDirective', function() {});
//myApp.factory('myService', function() {});
myApp.controller('MyCtrl',MyCtrl);
function MyCtrl($scope) {
    $scope.name = 'Superhero';
    $scope.myTime = '10:59';
}


myApp.directive('myDirective', function () {
    return {
        restrict: 'A',
        require: '?ngModel',
        link: function (scope, element, attrs, ngModel) {
            scope.$watch(attrs.ngModel, function (v) {
                console.log('value changed, new value is: ' + v);
               ngModel.$setViewValue('11')
               //scope.ngModel = '11'
               
            });
        }
    };
});

<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-controller="MyCtrl">
  Hello, {{name}}!
    
    
    <input type="text" my-directive ng-model="myTime" name="customTime">
    
</div>
&#13;
&#13;
&#13;

1 个答案:

答案 0 :(得分:3)

您应该在MyCtrl模块中注册myApp控制器,如下所示。

var myApp = angular.module('myApp',[]);

myApp.controller('MyCtrl',MyCtrl);

function MyCtrl($scope) {
    $scope.name = 'Superhero';
    $scope.myTime = '10:59';
}

如果您需要将文本字段值更新为某个所需值,则在使用$ setViewValue()完成观察程序中的更新后,您需要在{{1}上调用$render() }。

NgModelController

这是检查此更改的Pen

相关问题