Javascript 角JS动力学模型

Javascript 角JS动力学模型,javascript,angularjs,generics,model,scope,Javascript,Angularjs,Generics,Model,Scope,这里我要做的是,当我在main字段中键入文本时,我希望启用DateField和NumberField。我希望$scope.enableSubFields是泛型的,因此可以将其用作实用程序。(控制器不工作,我只是想展示我想要的:)) 这是我的HTML: <div> <label>IF THIS HAS TEXT THEN ENABLE DATE AND NUMBER FIELD</label> &l

这里我要做的是,当我在
main字段
中键入文本时,我希望启用
DateField
NumberField
。我希望
$scope.enableSubFields
是泛型的,因此可以将其用作实用程序。(控制器不工作,我只是想展示我想要的:))

这是我的HTML:

        <div>
            <label>IF THIS HAS TEXT THEN ENABLE DATE AND NUMBER FIELD</label>
            <input type="text" ng-model="MainField" ng-change="enableSubFields('MainField','Subfield')"/>
        </div>
        <div>
            <label>DATE FIELD</label>
            <input type="text" ng-model="DateField" ng-disabled="Subfield"/>
        </div>
        <div>
            <label>NUMBER FIELD:</label>
            <input type="text" ng-model="NumberField" ng-disabled="Subfield"/>
        </div>

您需要使用括号表示法来访问对象的动态属性。因此,您的代码应该是:

$scope.enableSubFields = function(mainField, subfield) {
    if ($scope[mainField] !== "") {
        $scope[subfield] = false;
    } else {
        $scope[subfield] = true;
    }
};
或更短:

$scope.enableSubFields = function(mainField, subfield) {
    $scope[subfield] = $scope[mainField] == "";
};

演示:谢谢你!!这让我对如何玩angular有了更多的想法。谢谢!!+这段较短的代码非常有帮助,一般来说,您可以使用这种方法使用javascript。如果我想在禁用文本字段时清除它,怎么样?我想我可以在jquery中完成,但是有没有办法在angular中选择文本字段的模型,这样我就可以将其值设置为空字符串?@ElementaryStudentProgramming然后我会使用指令。
$scope.enableSubFields = function(mainField, subfield) {
    $scope[subfield] = $scope[mainField] == "";
};