AngularJS:只读输入ng-readonly

anv*_*rik 27 javascript angularjs

将布尔值传递给文本时有一个奇怪的问题.这是jsfiddle

<div ng-app ng-controller="MainCtrl">
    <p>First Name:
    <input ng-model="first" ng-readonly="true"/>
    </p>
    <p>Last Name:
        <input ng-model="second" ng-readonly="{{truefalse}}"/>
    </p>
</div>

function MainCtrl($scope) {
    $scope.first = "Angular";
    $scope.second = "JS";
    $scope.truefalse = "true";
}
Run Code Online (Sandbox Code Playgroud)

有人可以解释为什么第二场还可修改吗?

小智 42

您需要在没有大括号的情况下以ng-readonly方式传递范围.并且$ scope.truefalse不应该是字符串,因此您不需要引号.

<div ng-app ng-controller="MainCtrl">
    <p>First Name:
    <input ng-model="first" ng-readonly="true"/>
    </p>
    <p>Last Name:
        <input ng-model="second" ng-readonly="truefalse"/>
    </p>
</div>

function MainCtrl($scope) {
    $scope.first = "Angular";
    $scope.second = "JS";
    $scope.truefalse = true;
}
Run Code Online (Sandbox Code Playgroud)