ng-model在ng-controller中不起作用

时间:2017-01-27 08:00:49

标签: angularjs angular-ngmodel ng-controller

我创建了一个输入

的角度指令
 mainApp.directive('myInput', function () {
    return {
        restrict: 'E',
        template: '<label class="form-group"> <span>{{name}}</span>{{required}}
    <input class="form-control"  placeholder="{{placeholder}}" type="{{type}}" ng-required= "{{mandatory}}" > </label>',
        replace: true,
        scope: {
            placeholder: '@',
            type: '@',
            name: '@',
            mandatory: '@',
            value:'@',
        },
    }
});

控制器

        mainApp.controller("myController", ["$scope", function ($scope) {
             $scope.Firstname = ' ';
}]);

HTML

<my-Input type="text" placeholder="First name Last name" mandatory="0" ng-model="$ctrl.Firstname"></my-Input>
    <h4>{{$ctrl.Firstname}}</h4>

无法在标签内打印输入文字。请帮忙。 演示网址:http://codepen.io/JEETPAL/pen/pRWmKJ?editors=1010

1 个答案:

答案 0 :(得分:2)

只需在控制器中使用ng-model="Firstname"代替ng-model="$ctrl.Firstname"即可。如果你没有表明controller as $ctrl

您应该在指令的模板中添加ng-model并通过绑定ngmodel-value = "Firstname"发送您的ng-model值,然后在您指令的范围中添加ngmodelValue = "="用于双向绑定

http://codepen.io/anon/pen/EZwzOm?editors=1010