【问题标题】:Set input textbox value from another model in angularjs在angularjs中设置来自另一个模型的输入文本框值
【发布时间】:2014-07-01 10:01:35
【问题描述】:

我有一个 html 选择字段。我想使用 selecteditems pid 属性作为输入文本框的默认值。我尝试了以下两种方式

我的选择字段

<select ng-model="selectedProduct" ng-options="product.pname for product in products"></select>

方式一:

<input type="text" data-ng-model="neworder.pid" ng-init="neworder.pid={{selectedProduct.pid}}" required />

方式 2:

<input type="text" data-ng-model="neworder.pid" required />

在控制器中

$scope.neworder.pid = $scope.selectedProduct.pid

但未能使它们都起作用。如何正确操作?

更新

我的表单包含选择字段。

<form name="addOrder" data-ng-show="addMode" style="width:600px;margin:0px auto;">
        <select ng-model="selectedProduct" ng-options="product.pname for product in products"></select>
        {{selectedProduct.pid}}
        <label>PID:</label><input type="text" data-ng-model="neworder.pid" ng-init="neworder.pid={{selectedProduct.pid}}" required />
        <label>OID:</label><input type="text" data-ng-model="neworder.oid" required />
        <label>QTY:</label><input type="text" data-ng-model="neworder.qty" required />
        <label>TOTAL:</label><input type="text" data-ng-model="neworder.total" required />
        <br />
        <!-- <span class="error" data-ng-show="addCustomer.$error.required">Required!</span>-->
        <br />
        <input type="submit" value="Add" data-ng-click="add()" data-ng-disabled="!addOrder.$valid" class="btn btn-primary" />
        <input type="button" value="Cancel" data-ng-click="toggleAdd()" class="btn btn-primary" />
        <br /><br />
    </form>

在控制器中添加功能

$scope.add = function () {
            $http.post('/api/OrderDetails/', this.neworder).success(function (data) {
                alert("Added Successfully!!");
                $scope.addMode = false;
                $scope.orders.push(data);
            }).error(function (data) {
                $scope.error = "An Error has occured while Adding product! " + data;

            });
        };

【问题讨论】:

    标签: angularjs


    【解决方案1】:

    为什么不直接绑定到selectedProduct

    像这样:

    <input type="text" ng-model="selectedProduct.pid" name="pid">
    

    如您所见here.

    编辑

    像这样使用ng-change

    <select ng-options="..." ng-change="newOrder.pid=selectedProduct.pid" ng-model="..."></select>
    

    <input type="text" ng-model="newOrder.pid">
    

    【讨论】:

    • 因为我需要将模型名称设为“neworder.pid”,以便稍后通过this.neworder 使用控制器中的所有表单值。我添加了我的表格,以便您查看。
    • 所以将ng-change与将neworder.pid设置为selectedProduct.pid的函数一起使用。这应该工作
    【解决方案2】:

    $http.get(这里有一些文字) .success(function(这里有一些文字) {

    $scope.neworder ={name of your input field: 'text you want to show inside input field'};
    
        });
    

    请记住,您必须在 $http.get() 函数中编写此代码,因为它会在用户输入之前获取值

    【讨论】:

      猜你喜欢
      • 2016-11-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多