Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/72.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
Javascript 为IE6创建动态名称为Angular的收音机_Javascript_Html_Angularjs - Fatal编程技术网

Javascript 为IE6创建动态名称为Angular的收音机

Javascript 为IE6创建动态名称为Angular的收音机,javascript,html,angularjs,Javascript,Html,Angularjs,我在角度控制器中有以下数据列表 $scope.dataList = [ {id:1, name:"Record A", action:"A"}, //action : A = Authorized {id:2, name:"Record B", action:"R"}, //action : R = Rejected {id:3, name:"Record C", action:"P"}, //action : P = Pending {id:4

我在角度控制器中有以下数据列表

$scope.dataList = [
    {id:1, name:"Record A", action:"A"},    //action : A = Authorized
    {id:2, name:"Record B", action:"R"},    //action : R = Rejected
    {id:3, name:"Record C", action:"P"},    //action : P = Pending
    {id:4, name:"Record D", action:"A"},    
    {id:5, name:"Record E", action:"R"},    
    {id:6, name:"Record F", action:"A"} 
];    
我用三个单选按钮在每一行显示数据,这样用户可以更新动作值

<table border="1">
    <thead>
        <tr>
            <th>Name</th>
            <th>Pending</th>
            <th>Authorize</th>
            <th>Reject</th>
        </tr>
    </thead>
    <tbody>
        <tr ng-repeat="data in dataList">
            <td ng-bind="data.name"></td> 
            <td><input type="radio" name="action-{{data.id}}" ng-model="data.action" ng-value="'P'"></td>
            <td><input type="radio" name="action-{{data.id}}" ng-model="data.action" ng-value="'A'"></td> 
            <td><input type="radio" name="action-{{data.id}}" ng-model="data.action" ng-value="'R'"></td>
        </tr>
</tbody>
</table>

名称
悬而未决的
授权
拒绝

对于单选按钮的逻辑分组,我使用了
name=“action-{{{data.id}}”
为每一行分别设置单选按钮集。由于
data.id
对于每条记录都是唯一的,因此在每一行中,单选按钮将具有相同的名称,因此具有相同的逻辑组

它可以在现代浏览器中使用,但不幸的是,我必须在IE6中使用它。问题是,一旦在DOM中创建单选按钮,IE6就不允许更改
name
属性。
因此
name=“action-{{data.id}}”
将保留,因为它会导致所有单选按钮都属于一个逻辑组


有什么解决办法吗?我正在考虑编写一个指令,在DOM中创建
radio
之前生成
name
属性。可以使用指令吗?如果是这样,请帮助我。

以下是我解决问题的方法。(代码可以更简洁,但这是基本思想。)

我将
span
my radio
指令一起使用,并在指令上列出了其他必需的属性

...
<td><span my-radio="data.id" my-model="data.action" my-value="'P'"></span></td>
<td><span my-radio="data.id" my-model="data.action" my-value="'A'"></span></td>
<td><span my-radio="data.id" my-model="data.action" my-value="'R'"></span></td>
...
这将为每一行生成以下代码。在这里,
名称
属性是由
“action”+data.id
表达式生成的

...
<td>
    <span my-value="'P'" my-model="data.action" my-radio="data.id">
        <input type="radio" ng-value="'P'" ng-model="data.action" name="action-1">
    </span>
</td>

<td>
    <span my-value="'P'" my-model="data.action" my-radio="data.id">
        <input type="radio" ng-value="'A'" ng-model="data.action" name="action-1">
    </span>
</td>

<td>
    <span my-value="'P'" my-model="data.action" my-radio="data.id">
        <input type="radio" ng-value="'R'" ng-model="data.action" name="action-1">
    </span>
</td>
...
。。。
...

我认为你可以使用{{$index}而不是{{data.id}来表示name=“action-{{{data.id}}”,因为$index将自动为每个元素更改,并且你将具有动态名称。
作为使用指令的替代方法,它解决了我的问题。

与Angular无关,但它与IE 6错误有关,我不久前遇到了这个问题:是的,我提到过。但是在DOM中创建元素之前,angular可以分配动态属性值吗?你不能停止支持这种垃圾吗?“今年6岁到12岁了,它需要休息。”疯子,你说得对。这简直是胡说八道。但是,正如我之前所说,“不幸的是”,我必须让事情在这方面顺利进行(我期待任何其他更好的解决方案。由于没有找到其他解决方案,我将此答案标记为正确。
...
<td>
    <span my-value="'P'" my-model="data.action" my-radio="data.id">
        <input type="radio" ng-value="'P'" ng-model="data.action" name="action-1">
    </span>
</td>

<td>
    <span my-value="'P'" my-model="data.action" my-radio="data.id">
        <input type="radio" ng-value="'A'" ng-model="data.action" name="action-1">
    </span>
</td>

<td>
    <span my-value="'P'" my-model="data.action" my-radio="data.id">
        <input type="radio" ng-value="'R'" ng-model="data.action" name="action-1">
    </span>
</td>
...