Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angularjs 如何从单选按钮获取数据?安格拉斯_Angularjs - Fatal编程技术网

Angularjs 如何从单选按钮获取数据?安格拉斯

Angularjs 如何从单选按钮获取数据?安格拉斯,angularjs,Angularjs,我无法获得所选单选按钮的价格和名称。使用简单的html标记很容易。 但当我尝试从数组(项目)通过angularjs生成单选按钮时,我堆叠了 救命啊 html <h1>Select </h1> <div ng-app="" ng-controller="OrderCtrl"> <div ng-repeat="item in items"> <div class="radio"> <label> <

我无法获得所选单选按钮的价格和名称。使用简单的html标记很容易。 但当我尝试从数组(项目)通过angularjs生成单选按钮时,我堆叠了

救命啊

html

<h1>Select </h1>

<div ng-app="" ng-controller="OrderCtrl">
      <div ng-repeat="item in items">
<div class="radio">
<label>
     <input type="radio" name="item" ng-model="item" ng-checked="{{item.checked}}"> 
     {{item.name}} +{{item.price}} $.</label>
</div>
</div>

Your choice: {{}} **what i must write here?**
<br>
Price: {{}} **and here?**
</div>

您的输入缺少结束标记。当你有ng repeat时,你有一个单独的范围。在这种情况下,您需要$parent.selectedItem来保存所选元素

我已使用工作状态解决方案更新了

<div ng-app="" ng-controller="OrderCtrl">
<div ng-repeat="item in items" style="text-indent: 30px">
     <input type="radio" name="itemRadio"  ng-model="$parent.selectedItem" ng-value="item.name"/>
    {{item.name + '-' + item.price}}$.
</div>
    Your choice: {{selectedItem}}
</div>

{{item.name+'-'+item.price}}$。
您的选择:{{selectedItem}

您可以查看有关单选按钮的angularjs文档。您不需要在此处使用
ng checked
。选择重拨时,使用
ng value
设置值。 我更改了你的帖子。

jsiddle:

html


您的JSFIDLE不工作。我已经更新了你的工作以及。对不起,我没有保存我的小提琴。请再次检查是否使用$parent不安全。使用对象作为模型。为什么$parent不安全?这类似于为什么不在单选按钮输入元素中放入ng value=“{item}}”和ng model=“$parent.something”?这并不更好,这是唯一的方法,您强制使用事件,而不是以更简单的方式
<div ng-app="" ng-controller="OrderCtrl">
<div ng-repeat="item in items" style="text-indent: 30px">
     <input type="radio" name="itemRadio"  ng-model="$parent.selectedItem" ng-value="item.name"/>
    {{item.name + '-' + item.price}}$.
</div>
    Your choice: {{selectedItem}}
</div>
<div ng-app="" ng-controller="OrderCtrl">
    <div ng-repeat="item in items" style="text-indent: 30px">
        <label>
            <input type="radio" name="item" ng-checked="{{item.checked}}" ng-click="change_item($event)" item-name="{{item.name}}" item-price="{{item.price}}" /> {{item.name}} + {{item.price}} 
        </label>
    </div>

    Your choice: {{selectedName}}
    <br />
    Price: {{selectedPrice}}
</div>
OrderCtrl = function ($scope) {
$scope.change_item = function(e) {
    $scope.selectedName = e.target.attributes['item-name'].value;
    $scope.selectedPrice = e.target.attributes['item-price'].value;
};

$scope.items = [{
    name: 'None',
    value: "no",
    price: 0,
    checked: true
}, {
    name: 'Black',
    value: "black",
    price: 99,
    checked: false
}, {
    name: 'White',
    value: "white",
    price: 99,
    checked: false
}, {
    name: 'Barhat',
    value: "barhat",
    price: 49,
    checked: false
}, {
    name: 'Barhat',
    value: "cream",
    price: 49,
    checked: false
}]
}